#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <getopt.h>
#include <unistd.h>
#include <signal.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <time.h>
#include <errno.h>
#include <sys/wait.h>
#include <sys/ioctl.h> 
#include <locale.h>
#include <libintl.h>
#include <dirent.h>
#include <langinfo.h>

/*
 * https://gitlab.com/psmisc/psmisc.git
 *
 * pstree (version 22.20)
 * 
 *          Addr      Off    Size
 * .data    0x804d0e8 0x50e8 0x60
 */


int g_0x804d1a0 = 0;
int g_0x804d0fc = 0;
int g_0x804d0f0 = 0x8c;
int g_0x804d1ac = 0;
int g_0x804d1b0;
int g_0x804d0f8;
int g_0x804d1b4;
int g_0x804d1a8;
int g_0x804d1a4;
int g_0x804d0f4;
int g_0x804d168 = 1;    /* optind */
int g_0x804d1b8 = 0;
int g_0x804d1c8 = 0;

#if 0
int ioctl(int fd, int cmd, ...) ;

struct option
{
  const char *name;
  /* has_arg can't be an enum because some compilers complain about
     type mismatches in all the code that assumes it is an int.  */
  int has_arg;
  int *flag;
  int val;
};
#endif

/* Names for the values of the 'has_arg' field of 'struct option'.  */
# define no_argument            0
# define required_argument      1
# define optional_argument      2

static struct option long_options[16] =
{
	{"arguments", no_argument, NULL, 'a'},
	{"ascii", no_argument, NULL, 'A'},
	{"compact", no_argument, NULL, 'c'},
	{"vt100", no_argument, NULL, 'G'},
	{"highlight-all", no_argument, NULL, 'h'},
	{"highlight-pid", required_argument, NULL, 'H'},
	{"long", no_argument, NULL, 'l'},
	{"numeric-sort", no_argument, NULL, 'n'},
	{"show-pids", no_argument, NULL, 'p'},
	{"show-pgids", no_argument, NULL, 'g'},
	{"show-parents", no_argument, NULL, 's'},
	{"uid-changes", no_argument, NULL, 'u'},
	{"unicode", no_argument, NULL, 'U'},
	{"version", no_argument, NULL, 'V'},
	{"security-context", no_argument, NULL, 'Z'},
	{NULL, 0, NULL, 0}
};

/*
 * ebp+0x8 = argc
 * ebp+0xc = argv
 */

int main(int argc, char **argv)
{
 /*8049060:	55                   	push   %ebp
 8049061:	b9 40 00 00 00       	mov    $0x40,%ecx	// ecx=0x40=64
 8049066:	89 e5                	mov    %esp,%ebp	// ebp=esp=0xbffff168
 8049068:	57                   	push   %edi		// esp=0xbffff164
 8049069:	56                   	push   %esi		// esp=0xbffff160
 804906a:	be c0 b9 04 08       	mov    $0x804b9c0,%esi	// esi=0x804b9c0 "arguments" note:help info, long_options
 804906f:	53                   	push   %ebx		// esp = 0xbffff15c
 8049070:	83 e4 f0             	and    $0xfffffff0,%esp	// esp = 0xbffff150
 8049073:	8d a4 24 20 da ff ff 	lea    -0x25e0(%esp),%esp	// esp = 0xbfffcb70*/
	char buff_25e0[0x25e0];	// 2424

 /*804907a:	8b 45 0c             	mov    0xc(%ebp),%eax		// eax = 0xbffff204 = (ebp+0xc)=0xbffff174:0xbffff204 (**argv)
																// /home/share/work/ac-code/command/pstree/reverse/intel-r2/pstree
																// x/x $ebp+8	--> 0x00000001
 804907d:	8d 9c 24 d8 00 00 00 	lea    0xd8(%esp),%ebx		// ebx = 0xbfffcc48  0xd8=216 216/4=54, buff_d8
 8049084:	8d 3b                	lea    (%ebx),%edi			// edi = 0xbfffcc48
 8049086:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)*/
	struct option buff_d8[16];
    char *pgetenv = NULL;

	memcpy(buff_d8, long_options, sizeof(long_options));	

 /*8049088:	89 44 24 4c          	mov    %eax,0x4c(%esp)		// 0xbfffcbbc:0x00000000bffff204, eax=0xbffff204, (esp+0x4c)=argv
 804908c:	c7 44 24 04 13 54 00 	movl   $0x5413,0x4(%esp)	// 0xbfffcb74:0x0000000000005413
 8049093:	00 */
	char *pargv = argv[0];
	long int v_0x5413 = 0x5413;

 /*8049094:	65 a1 14 00 00 00    	mov    %gs:0x14,%eax		// eax=gs:0x14=0x58bdd000	(hui bian)
 804909a:	89 84 24 dc 25 00 00 	mov    %eax,0x25dc(%esp)	// (esp+0x25dc)=0x58bdd000
 80490a1:	31 c0                	xor    %eax,%eax			// eax=0
 80490a3:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)			// (esp)=1
 80490aa:	8d 44 24 70          	lea    0x70(%esp),%eax		// eax=esp+0x70
 80490ae:	89 44 24 08          	mov    %eax,0x8(%esp)		// (esp+0x8)=esp+0x70	
 80490b2:	e8 49 fd ff ff       	call   8048e00 <ioctl@plt>*/
	int v_0x25dc = 0x58bdd000;
	struct winsize p_0x70;

    // include/uapi/asm-generic/ioctls.h:38:#define TIOCGWINSZ 0x5413
	// extern int ioctl (int __fd, unsigned long int __request, ...) __THROW;	// /usr/include/sys/ioctl.h:41:12:
	int ret = ioctl(1, v_0x5413, &p_0x70);
	printf("ret = %d\n", ret);

 /*80490b7:	85 c0                	test   %eax,%eax		// eax=0, sf=0. if eax<0, sf=1
 80490b9:	78 0e                	js     80490c9 <tigetstr@plt+0x79> */ // sf=0, no jump.

	if (ret >= 0) {

 /*80490bb:	0f b7 44 24 72       	movzwl 0x72(%esp),%eax	// eax=0x00000050
 80490c0:	66 85 c0             	test   %ax,%ax	// ax=0x50, zf=0
 80490c3:	0f 85 9d 02 00 00    	jne    8049366 <tigetstr@plt+0x316> */ // zf=0, jump
		if (p_0x70.ws_col != 0) {
			// jump 8049366
            g_0x804d0f0 = p_0x70.ws_col;
		}
	}
	/* error: 上面的if结束后都能进入这里 */
    /* else {
		// jump 80490c9 */
	
 /*80490c9:	c7 44 24 04 88 b8 04 	movl   $0x804b888,0x4(%esp)	// "\0"
 80490d0:	08 
 80490d1:	c7 04 24 06 00 00 00 	movl   $0x6,(%esp)
 80490d8:	e8 73 fe ff ff       	call   8048f50 <setlocale@plt>*/
	char *p_804b888 = (char *)"\0";
	char *p_ret;
	p_ret = setlocale(__LC_ALL, p_804b888);
	printf("p_ret = %s\n", p_ret);

 /*80490dd:	c7 44 24 04 bf b7 04 	movl   $0x804b7bf,0x4(%esp)	// "/usr/share/locale"
 80490e4:	08 
 80490e5:	c7 04 24 d1 b7 04 08 	movl   $0x804b7d1,(%esp)	// "psmisc"
 80490ec:	e8 af fe ff ff       	call   8048fa0 <bindtextdomain@plt>*/
	p_ret = bindtextdomain("psmisc", "/usr/share/locale");
	printf("ret = %s\n", p_ret);

 /*80490f1:	c7 04 24 d1 b7 04 08 	movl   $0x804b7d1,(%esp)	// "psmisc"
 80490f8:	bf d8 b7 04 08       	mov    $0x804b7d8,%edi		// "pstree.x11"
 80490fd:	e8 de fc ff ff       	call   8048de0 <textdomain@plt>*/
	textdomain("psmisc");

 /*8049102:	b9 0b 00 00 00       	mov    $0xb,%ecx		// ecx=0xb=11
 8049107:	8b 35 60 d1 04 08    	mov    0x804d160,%esi	// "pstree"
 804910d:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)	// es:0x804b7d8:pstree.x11 ds:0x804d160
 804910f:	75 0a                	jne    804911b <tigetstr@plt+0xcb>
 8049111:	c7 05 a0 d1 04 08 01 	movl   $0x1,0x804d1a0
 8049118:	00 00 00 
 804911b:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 8049122:	e8 89 fe ff ff       	call   8048fb0 <isatty@plt>*/
	if (strncmp("pstree.x11", "pstree", 0xb) == 0)  {
		g_0x804d1a0 = 0x1;
	}

	ret = isatty(1);	
	if (ret != 0) {
 /*8049127:	85 c0                	test   %eax,%eax	// eax=1, 1&1=1
 8049129:	74 24                	je     804914f <tigetstr@plt+0xff>	// !=0, no
 804912b:	c7 04 24 0e 00 00 00 	movl   $0xe,(%esp)
 8049132:	e8 09 fe ff ff       	call   8048f40 <nl_langinfo@plt>*/
		// nl_langinfo(14, 0x804b7bf, 0xbf9d39c0, 0);
		p_ret = nl_langinfo(14);	

 /*8049137:	89 04 24             	mov    %eax,(%esp)	// "UTF-8"
 804913a:	c7 44 24 04 e3 b7 04 	movl   $0x804b7e3,0x4(%esp)	// "UTF-8"
 8049141:	08 
 8049142:	e8 c9 fb ff ff       	call   8048d10 <strcmp@plt>
 8049147:	85 c0                	test   %eax,%eax	// eax=0, zf=1
 8049149:	0f 84 21 02 00 00    	je     8049370 <tigetstr@plt+0x320> */ // zf=1, jump
		if (strcmp(p_ret, "UTF-8") == 0) {
            // je 8049370 --> 804916d
			g_0x804d0fc = 0x804d118;
		}
	}
 	else { /* isatty */
 /*804914f:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 8049156:	e8 55 fe ff ff       	call   8048fb0 <isatty@plt>
 804915b:	85 c0                	test   %eax,%eax                    // if eax != 0, zf=0; eax=0, zf=1
 804915d:	0f 85 1c 02 00 00    	jne    804937f <tigetstr@plt+0x32f> // isatty返回值为非零时，跳转, zf=0 -> jne
 8049163:	c7 05 fc d0 04 08 30 	movl   $0x804d130,0x804d0fc  // test如果不跳转会执行到此，下面语句也会跳到此，构成并列关系
 804916a:	d1 04 08 */
        if (isatty(1) && (pgetenv = getenv("TERM")) && (setupterm(NULL, 1, NULL) > 0) && tigetstr("acsc")) {
            // jne 804937f --> 8049163
            g_0x804d0fc = 0x804d130;
        } 
        else {
            g_0x804d0fc = 0x804d130;
        }			
	} /* isatty else end */

 /*804916d:	c7 44 24 44 00 00 00 	movl   $0x0,0x44(%esp)			// (esp+0x44)=var_44
 8049174:	00 
 8049175:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi	// 0xbffff34f:	"XDG_VTNR=1"
 8049179:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi	// 0x804b7df:	"x11"
 8049180:	8b 44 24 4c          	mov    0x4c(%esp),%eax	// 0xbffff174:0xbffff30f:"/home/share/work/ac-code/command/pstree/reverse/intel-r2/pstree"
 8049184:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
 804918b:	00 
 804918c:	89 44 24 04          	mov    %eax,0x4(%esp)	// 0xbffff174:0xbffff30f:"/home/share/work/ac-code/command/pstree/reverse/intel-r2/pstree"
 8049190:	8b 45 08             	mov    0x8(%ebp),%eax	// eax=(ebp+0x8)=0x1
 8049193:	89 5c 24 0c          	mov    %ebx,0xc(%esp)	// (esp+0xc)=0xbfffcaec:0xbfffcbb8(ebx):0x0804b8b5:"arguments"
 8049197:	c7 44 24 08 04 b8 04 	movl   $0x804b804,0x8(%esp)	// (esp+0x8)=0xbfffcae8:0x0804b804:"aAcGhH:npglsuUVZ"
 804919e:	08 
 804919f:	89 04 24             	mov    %eax,(%esp)		// (esp)=0x1
 80491a2:	e8 19 fd ff ff       	call   8048ec0 <getopt_long@plt> */

	char *option = "aAcGhH:npglsuUVZ";
	int var_44 = 0;
    char ch = -1;
	while ((ch = getopt_long(argc, argv, option, buff_d8, NULL)) != -1) {
		switch (ch) {
    // set args -ac
 /*80491a7:	83 f8 ff             	cmp    $0xffffffff,%eax	// eax=-1	// eax=-1, zf=1
 80491aa:	0f 84 21 02 00 00    	je     80493d1 <tigetstr@plt+0x381>	// yes , zf=1, jump
 80491b0:	83 e8 41             	sub    $0x41,%eax					// eax=0x61-0x41=0x20
 80491b3:	83 f8 34             	cmp    $0x34,%eax					// [IF], eax=0x20 -> [CF AF SF IF]  
 80491b6:	0f 87 87 01 00 00    	ja     8049343 <tigetstr@plt+0x2f3>	// (CF or ZF)=0, jump;  // call help()
 80491bc:	ff 24 85 c0 ba 04 08 	jmp    *0x804bac0(,%eax,4)  // 0+0x20*4+0x804bac0=0x804bb40:8049279 */

        case 'p':
 /*80491c3:	c7 05 b0 d1 04 08 01 	movl   $0x1,0x804d1b0    
 80491ca:	00 00 00 */
            g_0x804d1b0 = 1;
        case 'c':   // 编译器优化
 /*80491cd:	c7 05 f8 d0 04 08 00 	movl   $0x0,0x804d0f8
 80491d4:	00 00 00 
 80491d7:	eb a7                	jmp    8049180 <tigetstr@plt+0x130>*/            
            g_0x804d0f8 = 0;
            break;
        case 'u':
 /*80491d9:	c7 05 b4 d1 04 08 01 	movl   $0x1,0x804d1b4 
 80491e0:	00 00 00 
 80491e3:	eb 9b                	jmp    8049180 <tigetstr@plt+0x130>*/
            g_0x804d1b4 = 1;
            break;
        case 's':
 /*80491e5:	c7 05 a8 d1 04 08 01 	movl   $0x1,0x804d1a8        
 80491ec:	00 00 00 
 80491ef:	eb 8f                	jmp    8049180 <tigetstr@plt+0x130>*/
            g_0x804d1a8 = 1;
            break;
        case 'n':
 /*80491f1:	c7 05 a4 d1 04 08 01 	movl   $0x1,0x804d1a4
 80491f8:	00 00 00 
 80491fb:	eb 83                	jmp    8049180 <tigetstr@plt+0x130>*/
            g_0x804d1a4 = 1;
            break;
        case 'l':
 /*80491fd:	c7 05 f4 d0 04 08 00 	movl   $0x0,0x804d0f4
 8049204:	00 00 00 
 8049207:	e9 74 ff ff ff       	jmp    8049180 <tigetstr@plt+0x130>*/
            g_0x804d0f4 = 0;
            break;
        case 'h':
 /*804920c:	83 7c 24 44 00       	cmpl   $0x0,0x44(%esp)					// 0?var_44
 8049211:	0f 85 2c 01 00 00    	jne    8049343 <tigetstr@plt+0x2f3>     // call help()
 8049217:	c7 04 24 e9 b7 04 08 	movl   $0x804b7e9,(%esp)                // "TERM"
 804921e:	e8 4d fc ff ff       	call   8048e70 <getenv@plt>
 8049223:	85 c0                	test   %eax,%eax                        // eax=0,zf=1; eax=!0,zf=0
 8049225:	0f 84 55 ff ff ff    	je     8049180 <tigetstr@plt+0x130>*/   // zf=1,jump
            if (var_44 != 0) {
                // jne 8049343
                help();
            }

            if (getenv("TERM") == NULL) {
                // je 8049180
                break;
            }
 /*804922b:	c7 04 24 e9 b7 04 08 	movl   $0x804b7e9,(%esp)                // "TERM"
 8049232:	e8 39 fc ff ff       	call   8048e70 <getenv@plt>
 8049237:	89 44 24 04          	mov    %eax,0x4(%esp)
 804923b:	8d 84 24 db 01 00 00 	lea    0x1db(%esp),%eax
 8049242:	89 04 24             	mov    %eax,(%esp)
 8049245:	e8 f6 fb ff ff       	call   8048e40 <tgetent@plt>
 804924a:	85 c0                	test   %eax,%eax
 804924c:	0f 8e 2e ff ff ff    	jle    8049180 <tigetstr@plt+0x130>*/   // ((SF xor OF) or ZF) = 1, jump
            char *ptgetent = NULL;
            if (tgetent(ptgetnet, getenv("TERM")) <= 0)
                break;

 /*8049252:	e8 09 fc ff ff       	call   8048e60 <getpid@plt>
 8049257:	89 44 24 44          	mov    %eax,0x44(%esp)					// var_44=eax
 804925b:	e9 20 ff ff ff       	jmp    8049180 <tigetstr@plt+0x130>*/
            var_44 = getpid();
            break;
        case 'g':
 /*8049260:	c7 05 ac d1 04 08 01 	movl   $0x1,0x804d1ac
 8049267:	00 00 00 
 804926a:	c7 05 f8 d0 04 08 00 	movl   $0x0,0x804d0f8
 8049271:	00 00 00 
 8049274:	e9 07 ff ff ff       	jmp    8049180 <tigetstr@plt+0x130>*/
            g_0x804d1ac = 1;
            g_0x804d0f8 = 0;
            break;
        case 'a':
 /*8049279:	c7 05 b8 d1 04 08 01 	movl   $0x1,0x804d1b8 				// g_0x804d1b8
 8049280:	00 00 00 
 8049283:	e9 f8 fe ff ff       	jmp    8049180 <tigetstr@plt+0x130>*/
            g_0x804d1b8 = 1;
            break;
        case 'Z':
 /*8049288:	e8 73 fa ff ff       	call   8048d00 <is_selinux_enabled@plt>
 804928d:	85 c0                	test   %eax,%eax
 804928f:	0f 8e 55 08 00 00    	jle    8049aea <tigetstr@plt+0xa9a>
 8049295:	c7 05 9c d1 04 08 01 	movl   $0x1,0x804d19c
 804929c:	00 00 00 
 804929f:	e9 dc fe ff ff       	jmp    8049180 <tigetstr@plt+0x130>*/
            if (is_selinux_enabled() <= 0) {
                // jle 8049aea;
                fprintf(stderr, "Warning: -Z ignored. Requires anx SELinux enabled kernel\n");
            } else {
                g_0x804d19c = 1;
            }
            break;
        case 'V':
 /*80492a4:	e8 97 1d 00 00       	call   804b040 <tigetstr@plt+0x1ff0>
 80492a9:	31 db                	xor    %ebx,%ebx            // ebx=0*/
            fun_804b040();
            return 0;

 // jump to here, main() exit
 /*80492ab:	8b 8c 24 dc 25 00 00 	mov    0x25dc(%esp),%ecx    // ecx=0x58bdd000
 80492b2:	65 33 0d 14 00 00 00 	xor    %gs:0x14,%ecx        // ecx ?= 0
 80492b9:	89 d8                	mov    %ebx,%eax            // eax=1
 80492bb:	0f 85 60 0a 00 00    	jne    8049d21 <tigetstr@plt+0xcd1> // __stack_chk_fail
 80492c1:	8d 65 f4             	lea    -0xc(%ebp),%esp
 80492c4:	5b                   	pop    %ebx
 80492c5:	5e                   	pop    %esi
 80492c6:	5f                   	pop    %edi
 80492c7:	5d                   	pop    %ebp
 80492c8:	c3                   	ret   */
        case 'U':
 /*80492c9:	c7 05 fc d0 04 08 18 	movl   $0x804d118,0x804d0fc
 80492d0:	d1 04 08 
 80492d3:	e9 a8 fe ff ff       	jmp    8049180 <tigetstr@plt+0x130>*/
            g_0x804d0fc = 0x804d118;
            break;
        case 'H':
 /*80492d8:	83 7c 24 44 00       	cmpl   $0x0,0x44(%esp)					// 0?var_44
 80492dd:	75 64                	jne    8049343 <tigetstr@plt+0x2f3>     // call help()
 80492df:	c7 04 24 e9 b7 04 08 	movl   $0x804b7e9,(%esp)                // "TERM"
 80492e6:	e8 85 fb ff ff       	call   8048e70 <getenv@plt>
 80492eb:	85 c0                	test   %eax,%eax
 80492ed:	0f 84 e2 09 00 00    	je     8049cd5 <tigetstr@plt+0xc85>
 80492f3:	c7 04 24 e9 b7 04 08 	movl   $0x804b7e9,(%esp)                // "TERM"
 80492fa:	e8 71 fb ff ff       	call   8048e70 <getenv@plt>
 80492ff:	89 44 24 04          	mov    %eax,0x4(%esp)
 8049303:	8d 84 24 db 01 00 00 	lea    0x1db(%esp),%eax
 804930a:	89 04 24             	mov    %eax,(%esp)
 804930d:	e8 2e fb ff ff       	call   8048e40 <tgetent@plt>
 8049312:	85 c0                	test   %eax,%eax
 8049314:	0f 8e d0 09 00 00    	jle    8049cea <tigetstr@plt+0xc9a>
 804931a:	a1 88 d1 04 08       	mov    0x804d188,%eax               // 0x804d188=NULL
 804931f:	c7 44 24 08 0a 00 00 	movl   $0xa,0x8(%esp)
 8049326:	00 
 8049327:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
 804932e:	00 
 804932f:	89 04 24             	mov    %eax,(%esp)
 8049332:	e8 a9 fc ff ff       	call   8048fe0 <strtol@plt>
 8049337:	85 c0                	test   %eax,%eax
 8049339:	89 44 24 44          	mov    %eax,0x44(%esp)					// var_44=eax
 804933d:	0f 85 3d fe ff ff    	jne    8049180 <tigetstr@plt+0x130>*/
            if (var_44 != 0) {
                // jne 8049343
                help();
            }
            if (getenv("TREM") == NULL) {
                // je 8049cd5
                 fprintf(stderr, "TERM is not set\n");
                 return 1;
            }
            char *ptgetent2;
            if (tgetent(ptgetent2, getenv("TERM")) <= 0) {
                // jle 8049cea        
                 fprintf(stderr, "Can't get terminal capabilities\n");
                 return 1;
            }
            // char *endptr; 前移
            /* long int strtol(const char *str, char **endptr, int base) */
            /* var_44 = strtol(optarg, &endptr, 0xa); */
            var_44 = strtol(optarg, NULL, 0xa);
            if (var_44 == 0) {
                help();
            }
            break;

        default:     // 编译器优化
 /*8049343:	e8 88 0b 00 00       	call   8049ed0 <tigetstr@plt+0xe80>*/   // call help()
            help();
            break;
     
        case 'G':
 /*8049348:	c7 05 fc d0 04 08 00 	movl   $0x804d100,0x804d0fc             // 
 804934f:	d1 04 08 
 8049352:	e9 29 fe ff ff       	jmp    8049180 <tigetstr@plt+0x130>*/
                g_0x804d0fc = 0x804d100
                break;
         case 'A':
 /*8049357:	c7 05 fc d0 04 08 30 	movl   $0x804d130,0x804d0fc             // g_0x804d0fc=$0x804d130
 804935e:	d1 04 08 
 8049361:	e9 1a fe ff ff       	jmp    8049180 <tigetstr@plt+0x130>*/
                g_0x804d0fc = 0x804d130
                break;
    }
 /*8049366:	a3 f0 d0 04 08       	mov    %eax,0x804d0f0   // forward
 804936b:	e9 59 fd ff ff       	jmp    80490c9 <tigetstr@plt+0x79>*/    // forward next

 /*8049370:	c7 05 fc d0 04 08 18 	movl   $0x804d118,0x804d0fc		// run  g_0x804d0fc=$0x804d118
 8049377:	d1 04 08 
 804937a:	e9 ee fd ff ff       	jmp    804916d <tigetstr@plt+0x11d> */  // --> getopt_long

 /*804937f:	c7 04 24 e9 b7 04 08 	movl   $0x804b7e9,(%esp)        // "TERM"       // forward
 8049386:	e8 e5 fa ff ff       	call   8048e70 <getenv@plt>		// getenv("TERM")
 804938b:	85 c0                	test   %eax,%eax                // 比较 getenv 的返回值, eax=0, zf=1
 804938d:	0f 84 d0 fd ff ff    	je     8049163 <tigetstr@plt+0x113> // zf=1, jump
 8049393:	80 38 00             	cmpb   $0x0,(%eax)              // getenv 的返回值存入了指针变量并比较指向的数据
 8049396:	0f 84 c7 fd ff ff    	je     8049163 <tigetstr@plt+0x113>
 804939c:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
 80493a3:	00 
 80493a4:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 80493ab:	00 
 80493ac:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 80493b3:	e8 78 f9 ff ff       	call   8048d30 <setupterm@plt>	// setupterm(NULL, 1, NULL)
 80493b8:	85 c0                	test   %eax,%eax                // 比较 setupterm 的返回值, eax=!0, zf=0
 80493ba:	0f 85 a3 fd ff ff    	jne    8049163 <tigetstr@plt+0x113>     // zf=0, jump
 80493c0:	c7 04 24 ee b7 04 08 	movl   $0x804b7ee,(%esp)		// "acsc"
 80493c7:	e8 84 fc ff ff       	call   8049050 <tigetstr@plt>   // tigetstr("acsc")
 80493cc:	e9 92 fd ff ff       	jmp    8049163 <tigetstr@plt+0x113>*/
	
	/* getopt_long == -1 , jmp here */
    }

 /*80493d1:	8b 45 08             	mov    0x8(%ebp),%eax	// eax=(ebp+0x8)=argc
 80493d4:	89 c3                	mov    %eax,%ebx		// ebx=argc
 80493d6:	83 eb 01             	sub    $0x1,%ebx		// ebx=argc-1
 80493d9:	3b 1d 68 d1 04 08    	cmp    0x804d168,%ebx	// 0x804d168(optind)
 80493df:	0f 84 65 07 00 00    	je     8049b4a <tigetstr@plt+0xafa>	// no*/
    // set args -a -p 1
    int var_0x30 = -1;
    int var_0x34;
    char *pvar_0x5c;
    if (argc - 1 == optind) {   // getopt_long 函数的全局变量
        // je 8049b4a --> 8049030 <__ctype_b_loc@plt>
        if (isdigit(*argv[optind])) {
            /* long int strtol(const char *str, char **endptr, int base) */
            var_0x30 = strtol(argv[optind++], &pvar_0x5c, 0xa);

            if (pvar_0x5c[0] != '\0')
                help();
        } else if (!(var_0x34 = getpwnam(argv[optind++]))) {
            var_0x30 = 1;
            fprintf(stderr, "No such user name: %s\n",
                    argv[optind - 1]);
            return 1;
        }
    }
 /*80493e5:	c7 44 24 30 01 00 00 	movl   $0x1,0x30(%esp)  // (esp+0x30)=1
 80493ec:	00 
 80493ed:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)  // (esp+0x34)=0
 80493f4:	00 
 80493f5:	8b 45 08             	mov    0x8(%ebp),%eax   // eax=argc
 80493f8:	39 05 68 d1 04 08    	cmp    %eax,0x804d168   // argc?optind
 80493fe:	0f 85 3f ff ff ff    	jne    8049343 <tigetstr@plt+0x2f3>	// call help()*/
    var_0x34 = 0;

    if (argc != optind)
        help();

 /*8049404:	c7 44 24 6c 00 00 00 	movl   $0x0,0x6c(%esp)
 804940b:	00 
 804940c:	e8 ef f8 ff ff       	call   8048d00 <is_selinux_enabled@plt> */
    int var_0x6c = 0;
    #if 0
	int is_se_en = is_selinux_enabled(1, 0, option, 0);
    #endif

 /*8049411:	83 3d f4 d0 04 08 00 	cmpl   $0x0,0x804d0f4	// 0x804d0f4=1, zf=0
 8049418:	89 44 24 3c          	mov    %eax,0x3c(%esp)	// eax=0
 804941c:	c7 44 24 2c 01 20 00 	movl   $0x2001,0x2c(%esp)   // #define BUFSIZ 8192(0x2000)
 8049423:	00 
 8049424:	74 0c                	je     8049432 <tigetstr@plt+0x3e2> // zf=1
 8049426:	a1 f0 d0 04 08       	mov    0x804d0f0,%eax	// 0x804d0f0:0x0000008c, eax=0x8c
 804942b:	83 c0 01             	add    $0x1,%eax		// eax=0x8d
 804942e:	89 44 24 2c          	mov    %eax,0x2c(%esp)	// (esp+0x2c)=0x8d */

 int var_0x3c = 0;
 int var_0x2c = 0x2001;

 if (0 != g_0x804d0f4) {
     var_0x2c = g_0x804d0f0 + 1;     // 0x8d    
 } else {
    /* jump 8049432, 即跳出 if。编译器优化，删除不执行的代码。*/
    var_0x2c = 0x2001;
 }

 /*8049432:	83 3d b8 d1 04 08 00 	cmpl   $0x0,0x804d1b8	// 0x804d1b8:0x00000000, g_0x804d1b8
 8049439:	0f 84 8d 06 00 00    	je     8049acc <tigetstr@plt+0xa7c>	*/ // yes 8049acc -> jmp 8049457

 if (g_0x804d1b8 != 0) {    

 /*804943f:	8b 44 24 2c          	mov    0x2c(%esp),%eax
 8049443:	89 04 24             	mov    %eax,(%esp)
 8049446:	e8 45 fa ff ff       	call   8048e90 <malloc@plt>
 804944b:	85 c0                	test   %eax,%eax
 804944d:	89 44 24 28          	mov    %eax,0x28(%esp)  // (esp+0x28)=char * var_0x28
 8049451:	0f 84 db 08 00 00    	je     8049d32 <tigetstr@plt+0xce2>*/
    char * var_0x28 = malloc(var_0x2c);
    if (var_0x28 == NULL) {
        // jump 8049d32
        perror("malloc");
        exit(1);
    }
 }

 /*8049457:	c7 04 24 2c b8 04 08 	movl   $0x804b82c,(%esp)	// 0x804b82c:"/proc", esp=0xbfffcae0:0x0804b82c:"/proc"
 804945e:	e8 ad fb ff ff       	call   8049010 <opendir@plt>
 8049463:	85 c0                	test   %eax,%eax		// eax=0x804e858:0x00000003=pdir
 8049465:	89 44 24 4c          	mov    %eax,0x4c(%esp)	// 0xbfffcb2c:0x0804e858, (esp+0x4c)=pdir
 8049469:	0f 84 db 08 00 00    	je     8049d4a <tigetstr@plt+0xcfa>*/	// no

    DIR * pdir = opendir("/proc");
    if (pdir == NULL) {
        // jump 8049d4a
        perror("/proc");
        exit(1);
    }

 /*804946f:	bf 01 00 00 00       	mov    $0x1,%edi	// edi=0x1
 8049474:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi	// "XDG_VTNR=1"
 804947a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi	// edi = 1
 8049480:	8b 44 24 4c          	mov    0x4c(%esp),%eax	// eax=0x804e858:0x03=pdir
 8049484:	89 04 24             	mov    %eax,(%esp)		// (esp)=0x804e858=pdir
 8049487:	e8 f4 fa ff ff       	call   8048f80 <readdir64@plt>*/
	
	struct dirent * dp = NULL;
    char *ptr;
    int ret_strtol = -1;

	while ((dp = readdir64(pdir)) != NULL) {
		printf("name:%s\n", dp->d_name);
        ret_strtol = strtol(dp->d_name, &ptr, 0xa);

        if (dp->d_name != ptr && ptr[0] == '\0') {
            // goto 8049480  # 8049480处是循环的开始，所以以前的条件与下面判断指令相反。
            // 当相反条件不满足时，继续大循环。	

 /*804948c:	85 c0                	test   %eax,%eax	// eax:0x804e874:0x1, --> zf=0, no jump; eax=dp
 804948e:	0f 84 c7 01 00 00    	je     804965b <tigetstr@plt+0x60b>     // closedir(pdir)
 8049494:	8d 70 13             	lea    0x13(%eax),%esi  // esi=0x804e887:0x0000002e, 由此判断返回值为结构体
 8049497:	c7 44 24 08 0a 00 00 	movl   $0xa,0x8(%esp)   // (exp+0x8)=0xa
 804949e:	00 
 804949f:	8d 44 24 60          	lea    0x60(%esp),%eax  // eax=0xbfffcb40:0x00000000, eax=ptr
 80494a3:	89 34 24             	mov    %esi,(%esp)      // (esp)=0x804e887
 80494a6:	89 44 24 04          	mov    %eax,0x4(%esp)   // (exp+0x4)=0xbfffcb40=ptr
 80494aa:	e8 31 fb ff ff       	call   8048fe0 <strtol@plt>
 80494af:	89 c3                	mov    %eax,%ebx		// ebx=strtol return value.
 80494b1:	8b 44 24 60          	mov    0x60(%esp),%eax	// eax=ptr
 80494b5:	39 c6                	cmp    %eax,%esi        // ptr ?= dp->d_name
 80494b7:	74 c7                	je     8049480 <tigetstr@plt+0x430>
 80494b9:	80 38 00             	cmpb   $0x0,(%eax)		// (eax)=ptr[0]
 80494bc:	75 c2                	jne    8049480 <tigetstr@plt+0x430>*/

 /*80494be:	89 34 24             	mov    %esi,(%esp)      // esi=dp->d_name
 80494c1:	e8 1a fa ff ff       	call   8048ee0 <strlen@plt>*/
    
    int len = strlen(dp->d_name);
    printf("len:%d\n", len);

 /*80494c6:	83 c0 0f             	add    $0xf,%eax
 80494c9:	89 04 24             	mov    %eax,(%esp)
 80494cc:	e8 bf f9 ff ff       	call   8048e90 <malloc@plt>
 80494d1:	85 c0                	test   %eax,%eax*/

    char *p_malloc = (char *)malloc(strlen(dp->d_name) + 15);
    if (p_malloc == NULL) {
        // jump 8049d26
        exit(2);
    }

 /*80494d3:	89 c6                	mov    %eax,%esi    // esi = p_malloc
 80494d5:	0f 84 4b 08 00 00    	je     8049d26 <tigetstr@plt+0xcd6> // no
 80494db:	89 5c 24 14          	mov    %ebx,0x14(%esp)          // (esp+0x14) = ebx = strtol return value.
 80494df:	c7 44 24 10 2c b8 04 	movl   $0x804b82c,0x10(%esp)    // 0xbfffcaf0:0x804b82c:"/proc"
 80494e6:	08 
 80494e7:	c7 44 24 0c 32 b8 04 	movl   $0x804b832,0xc(%esp)     // "%s/%d/stat"
 80494ee:	08 
 80494ef:	c7 44 24 08 ff ff ff 	movl   $0xffffffff,0x8(%esp)
 80494f6:	ff 
 80494f7:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 80494fe:	00 
 80494ff:	89 04 24             	mov    %eax,(%esp)
 8049502:	e8 39 fb ff ff       	call   8049040 <__sprintf_chk@plt>*/

    __sprintf_chk(p_malloc, 1, -1, "%s/%d/stat", "/proc", ret_strtol); // ret_strtol is strtol return value.
    printf("p_malloc=%s\n", p_malloc);


 /*8049507:	c7 44 24 04 3d b8 04 	movl   $0x804b83d,0x4(%esp) // "r"
 804950e:	08 
 804950f:	89 34 24             	mov    %esi,(%esp)          // esi = p_malloc
 8049512:	e8 f9 f8 ff ff       	call   8048e10 <fopen64@plt>*/
    
    FILE *fp_1 = fopen64(p_malloc, "r");  // "/proc/1/stat"
    if (fp_1 != NULL) {    

 /*8049517:	85 c0                	test   %eax,%eax        // zf=0
 8049519:	89 44 24 48          	mov    %eax,0x48(%esp)  // (esp+0x48)=fp_1
 804951d:	0f 84 1c 01 00 00    	je     804963f <tigetstr@plt+0x5ef> // no jump
 8049523:	89 5c 24 14          	mov    %ebx,0x14(%esp)          // (esp+0x14)=ebx=strtol return value.
 8049527:	c7 44 24 10 2c b8 04 	movl   $0x804b82c,0x10(%esp)    // "/proc"
 804952e:	08 
 804952f:	c7 44 24 0c 3f b8 04 	movl   $0x804b83f,0xc(%esp)     // "%s/%d"
 8049536:	08 
 8049537:	c7 44 24 08 ff ff ff 	movl   $0xffffffff,0x8(%esp)    // -1
 804953e:	ff 
 804953f:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)           // 1
 8049546:	00 
 8049547:	89 34 24             	mov    %esi,(%esp)              // esi = p_malloc
 804954a:	e8 f1 fa ff ff       	call   8049040 <__sprintf_chk@plt>*/

    __sprintf_chk(p_malloc, 1, -1, "%s/%d", "/proc", ret_strtol); // ret_strtol is strtol return value.
    printf("%s\n", p_malloc);

 /*804954f:	8b 44 24 3c          	mov    0x3c(%esp),%eax  // eax=(esp+0x3c)=var_0x3c
 8049553:	85 c0                	test   %eax,%eax        
 8049555:	7e 18                	jle    804956f <tigetstr@plt+0x51f> // (SF ^ OF) | ZF = 1, 小于等于(有符号<=) 
 8049557:	8d 44 24 6c          	lea    0x6c(%esp),%eax  // eax=&var_0x6c
 804955b:	89 1c 24             	mov    %ebx,(%esp)      // ebx=strtol return value.
 804955e:	89 44 24 04          	mov    %eax,0x4(%esp)
 8049562:	e8 69 fa ff ff       	call   8048fd0 <getpidcon@plt>
 8049567:	85 c0                	test   %eax,%eax
 8049569:	0f 88 9e 07 00 00    	js     8049d0d <tigetstr@plt+0xcbd> // exit(1)

 804956f:	8d 44 24 78          	lea    0x78(%esp),%eax  // eax=esp+0x78=pstat_buf
 8049573:	89 74 24 04          	mov    %esi,0x4(%esp)   // esi = p_malloc = "/proc/1"
 8049577:	89 44 24 08          	mov    %eax,0x8(%esp)
 804957b:	c7 04 24 03 00 00 00 	movl   $0x3,(%esp)
 8049582:	e8 39 fa ff ff       	call   8048fc0 <__xstat64@plt>*/

    if (var_0x3c > 0) {
        if (getpidcon(ret_strtol, &var_0x6c) < 0) {        // security_context_t var_0x6c
            // jump 8049d0d
            perror("getpidcon fail...");
            exit(1);
        }
    }
    
    struct stat pstat_buf;
    int stat64 = __xstat64(3, p_malloc, &pstat_buf);
    printf("%d %d\n", stat64, errno);

    if (stat64 < 0) {
        perror("xstat fail...");
        exit(1);
    }

 /*8049587:	85 c0                	test   %eax,%eax    // eax=0, sf=0
 8049589:	0f 88 7e 07 00 00    	js     8049d0d <tigetstr@plt+0xcbd> // exit(1)
 804958f:	8b 44 24 48          	mov    0x48(%esp),%eax      // eax=fp_1
 8049593:	c7 44 24 08 00 20 00 	movl   $0x2000,0x8(%esp)    // 8192
 804959a:	00 
 804959b:	89 44 24 0c          	mov    %eax,0xc(%esp)       // fp_1
 804959f:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)       // 1
 80495a6:	00 
 80495a7:	8d bc 24 db 05 00 00 	lea    0x5db(%esp),%edi     // edi=read_buff
 80495ae:	89 3c 24             	mov    %edi,(%esp)          // esp=read_buff
 80495b1:	e8 9a f8 ff ff       	call   8048e50 <fread@plt> */
    
    char read_buff[8192]={0};
    int var_0x40 = -1;
    var_0x40 = fread(read_buff, 1, 8192, fp_1);
    printf("read_buff=%s\n", read_buff);

 /*80495b6:	8b 4c 24 48          	mov    0x48(%esp),%ecx  // ecx=fp_1
 80495ba:	89 44 24 40          	mov    %eax,0x40(%esp)  // (esp+0x40)=fread return value
 80495be:	89 0c 24             	mov    %ecx,(%esp)      // (esp)=fp_1
 80495c1:	e8 ca f7 ff ff       	call   8048d90 <ferror@plt>*/
    
    if (ferror(fp_1) == 0) {

 /*80495c6:	85 c0                	test   %eax,%eax        // zf=1
 80495c8:	75 67                	jne    8049631 <tigetstr@plt+0x5e1> // fclose(fp_1)
 80495ca:	8b 44 24 40          	mov    0x40(%esp),%eax              // eax=fread return value
 80495ce:	c6 84 04 db 05 00 00 	movb   $0x0,0x5db(%esp,%eax,1)      // read_buff[eax]=0
 80495d5:	00 */
    read_buff[var_0x40] = 0;

 /*80495d6:	c7 44 24 04 28 00 00 	movl   $0x28,0x4(%esp)              // (esp+0x4)=0x28
 80495dd:	00 
 80495de:	89 3c 24             	mov    %edi,(%esp)                  // read_buff
 80495e1:	e8 ea f8 ff ff       	call   8048ed0 <strchr@plt>*/
    
    char *pstrchr = strchr(read_buff, '(');
	printf("pstrchr=%s\n", pstrchr);

 /*80495e6:	85 c0                	test   %eax,%eax			// zf=0, eax=pstrchr
 80495e8:	89 44 24 40          	mov    %eax,0x40(%esp)		// (esp+0x40)=pstrchr
 80495ec:	74 43                	je     8049631 <tigetstr@plt+0x5e1>	// fclose(fp_1)
 80495ee:	c7 44 24 04 29 00 00 	movl   $0x29,0x4(%esp)		// (esp+0x4)=0x29
 80495f5:	00 
 80495f6:	89 04 24             	mov    %eax,(%esp)			// (esp)=pstrchr
 80495f9:	e8 62 f9 ff ff       	call   8048f60 <strrchr@plt>*/

	char *pstrrchr = strrchr(pstrchr, ')');
	printf("pstrrchr=%s\n", pstrrchr);

    if ((pstrchr != NULL) && (pstrrchr != NULL)) {

 /*80495fe:	85 c0                	test   %eax,%eax			// zf=0
 8049600:	74 2f                	je     8049631 <tigetstr@plt+0x5e1>	// fclose(fp_1)
 8049602:	c6 00 00             	movb   $0x0,(%eax)			// pstrrchr[0]=0, 把‘)’变成0
 8049605:	83 c0 02             	add    $0x2,%eax			// eax=pstrrchr+2, 跳过前两个字符。
 8049608:	8d 54 24 68          	lea    0x68(%esp),%edx		// (esp+0x68)=scanc1
 804960c:	c7 44 24 04 45 b8 04 	movl   $0x804b845,0x4(%esp)	// 0xbfffcae4:0x0804b845:"%*c %d %d"
 8049613:	08 
 8049614:	89 54 24 0c          	mov    %edx,0xc(%esp)		// （esp+0xc)=0xbfffcaec:edx=0xbfffcb48:0x00000000
 8049618:	89 04 24             	mov    %eax,(%esp)			// (esp)=eax=pstrrchr
 804961b:	8d 54 24 64          	lea    0x64(%esp),%edx		// (esp+0x64)=&scanf2
 804961f:	89 54 24 08          	mov    %edx,0x8(%esp)
 8049623:	e8 d8 f8 ff ff       	call   8048f00 <__isoc99_sscanf@plt>*/

        pstrrchr[0] = '0';
        printf("strrchr[0]=%s\n", pstrrchr);
        printf("strrchr+2=%s\n", pstrrchr+2);
        char scanc1 = 0;
        int scanf2 = 0;
        ret = __isoc99_sscanf(pstrrchr+2, "%*c %d %d", &scanf2, &scanc1);
        printf("ret=%d str:[%d], char=%d\n", ret, scanf2, scanc1);    

  /*8049628:	83 f8 02             	cmp    $0x2,%eax	// eax=2, zf=1
  804962b:	0f 84 13 02 00 00    	je     8049844 <tigetstr@plt+0x7f4>*/
        if (ret == 2) {
            // jump 8049844
            char *proc_m = (char*)malloc(17);
            if (proc_m == NULL)
                exit(2);

            ++pstrchr;
            __sprintf_chk(proc_m, 1, -1, "%s/task", "/proc/1");
            printf("proc_m=%s\n", proc_m);

            DIR * pdir_proc_m = opendir(proc_m);
            if (pdir_proc_m != NULL) {
                char *char_19 = (char*)malloc(19);
                    if (char_19 == NULL) {
                        // jump 8049d26
                        exit(2);
                    }
                ret = __sprintf_chk(char_19, 0x1, 0x13, "{%.*s}", 0x10, "systemd");
                printf("ret = %d, char_19=%s\n", ret, char_19);

                long int ret_strtol_2 = -1;
                while ((dp = readdir64(pdir_proc_m)) != NULL) {
                    printf("name:%s\n", dp->d_name);  
                    
                    ret_strtol_2 = strtol(dp->d_name, &ptr, 0xa);
                    printf("ret_strtol_2=%ld\n", ret_strtol_2);
                    if (ret_strtol_2 != 0) {
                        if (ret_strtol_2 != ret_strtol) {
                            if (g_0x804d1b8 != 0) {
                                fun_804ada0(char_19, ret_strtol_2, ret_strtol, scanc1, pstat_buf.st_uid, char_19,  strlen(char_19)+1,   1,       var_0x6c);
                            }
                            else {
                                fun_804ada0(char_19, ret_strtol_2, ret_strtol, scanc1, pstat_buf.st_uid, 0, 0, 1, var_0x6c);
                            }   /* if (g_0x804d1b8 == 0) */
                        }   /* if (ret_strtol_2 != 1) */
                     }       /* if (ret_strtol_2 != 0) */
                }   /* while ((dp = readdir64(pdir_proc_m)) != NULL) */     

                free(char_19);
                chosedir(pdir_proc_m);
            }   /* if (pdir_proc_m != NULL) */
            free(proc_m);

            if (g_0x804d1b8 != 0) {
                __sprintf_chk(p_malloc, 1, -1, "%s/%d/cmdline", "/proc", ret_strtol);

                int fd = open(p_malloc, O_RDONLY);
                if (fd < 0) {
                    perror(p_malloc);
                    exit(1);
                }
                var_0x40 = read(fd, var_0x28, var_0x2c);
                if (var_0x40 < 0) {
                    perror(p_malloc);
                    exit(1);
                }
                close(fd);

                if (var_0x40 >= var_0x2c)
                    var_0x40--;
                if (var_0x40 != 0) {
                    var_0x28[var_0x40++] = 0;
                }   /* if (var_0x40 != 0) */
                fun_804ada0(pstrchr, ret_strtol, scanf2, scanc1, pstat_buf.st_uid, var_0x28, var_0x40, 0, var_0x6c);

            } else {    /* if (g_0x804d1b8 == 0) */
                fun_804ada0(pstrchr, ret_strtol, scanf2, scanc1, pstat_buf.st_uid, 0, 0, 0, var_0x6c);
            } 

        }  // if (ret == 2)

      }   // if ((pstrchr != NULL) && (pstrrchr != NULL))
    }   // if (ferror(fp_1) != 0)

 /*8049631:	8b 44 24 48          	mov    0x48(%esp),%eax				// eax=fp_1
 8049635:	31 ff                	xor    %edi,%edi                    // edi=0
 8049637:	89 04 24             	mov    %eax,(%esp)
 804963a:	e8 61 f7 ff ff       	call   8048da0 <fclose@plt>*/    
      fclose(fp_1);

    } // if (fp_1 == NULL), jump here.
 /*804963f:	89 34 24             	mov    %esi,(%esp)  // esi=p_malloc
 8049642:	e8 29 f7 ff ff       	call   8048d70 <free@plt>*/
    free(p_malloc);

 /*8049647:	8b 44 24 4c          	mov    0x4c(%esp),%eax      // eax=pdir
 804964b:	89 04 24             	mov    %eax,(%esp)
 804964e:	e8 2d f9 ff ff       	call   8048f80 <readdir64@plt>
 8049653:	85 c0                	test   %eax,%eax
 8049655:	0f 85 39 fe ff ff    	jne    8049494 <tigetstr@plt+0x444>*/
    //if (dp = readdir(pdir) != NULL) {     // while loop
        // goto 8049494
    //}
  } /* if (dp->d_name != ptr && ptr[0] == '\0') */ /* 因为else后就是主循环，故 } 在此结束 if */

 } /* end while */

 /*804965b:	8b 44 24 4c          	mov    0x4c(%esp),%eax                  // eax=pdir
 804965f:	89 04 24             	mov    %eax,(%esp)
 8049662:	e8 99 f9 ff ff       	call   8049000 <closedir@plt>*/         // closedir
    closedir(pdir);

 /*8049667:	8b 1d c8 d1 04 08    	mov    0x804d1c8,%ebx           // set args -a, ebx=0x0805e570, 0x804d1c8:0x0805e570:"pstree"
 804966d:	8b 44 24 6c          	mov    0x6c(%esp),%eax          // eax = 0, parameter one
 8049671:	85 db                	test   %ebx,%ebx
 8049673:	74 18                	je     804968d <tigetstr@plt+0x63d> // no
 8049675:	83 7b 1c 01          	cmpl   $0x1,0x1c(%ebx)              // (ebx)+0x1c=2620, 0x0805e570+0x1c=0x805e58c:0x00000a3c(2620)
 8049679:	8d 33                	lea    (%ebx),%esi                  // esi=0x0805e570
 804967b:	75 09                	jne    8049686 <tigetstr@plt+0x636> // yes jump
 804967d:	eb 31                	jmp    80496b0 <tigetstr@plt+0x660>
 804967f:	90                   	nop
 8049680:	83 7e 1c 01          	cmpl   $0x1,0x1c(%esi)
 8049684:	74 2a                	je     80496b0 <tigetstr@plt+0x660>
 8049686:	8b 76 38             	mov    0x38(%esi),%esi          // esi=0x805e520, 0x0805e570+0x38=0x805e5a8:0x805e520:"kworker/u8:2"
 8049689:	85 f6                	test   %esi,%esi
 804968b:	75 f3                	jne    8049680 <tigetstr@plt+0x630> // yes
 804968d:	89 04 24             	mov    %eax,(%esp)
 8049690:	31 c9                	xor    %ecx,%ecx
 8049692:	ba 01 00 00 00       	mov    $0x1,%edx
 8049697:	b8 a3 b7 04 08       	mov    $0x804b7a3,%eax					// "?"
 804969c:	e8 af 15 00 00       	call   804ac50 <tigetstr@plt+0x1c00>    // fun_804ac50
 80496a1:	8b 1d c8 d1 04 08    	mov    0x804d1c8,%ebx
 80496a7:	89 c6                	mov    %eax,%esi
 80496a9:	85 db                	test   %ebx,%ebx
 80496ab:	74 1b                	je     80496c8 <tigetstr@plt+0x678>
 80496ad:	8d 76 00             	lea    0x0(%esi),%esi
 80496b0:	83 7b 1c 01          	cmpl   $0x1,0x1c(%ebx)
 80496b4:	76 0b                	jbe    80496c1 <tigetstr@plt+0x671>
 80496b6:	8b 43 34             	mov    0x34(%ebx),%eax
 80496b9:	85 c0                	test   %eax,%eax
 80496bb:	0f 84 18 04 00 00    	je     8049ad9 <tigetstr@plt+0xa89>
 80496c1:	8b 5b 38             	mov    0x38(%ebx),%ebx
 80496c4:	85 db                	test   %ebx,%ebx
 80496c6:	75 e8                	jne    80496b0 <tigetstr@plt+0x660>
 80496c8:	83 3d b8 d1 04 08 00 	cmpl   $0x0,0x804d1b8					// g_0x804d1b8
 80496cf:	0f 85 64 04 00 00    	jne    8049b39 <tigetstr@plt+0xae9>
 80496d5:	85 ff                	test   %edi,%edi
 80496d7:	0f 85 97 06 00 00    	jne    8049d74 <tigetstr@plt+0xd24>
 80496dd:	8b 0d c8 d1 04 08    	mov    0x804d1c8,%ecx
 80496e3:	85 c9                	test   %ecx,%ecx
 80496e5:	89 ca                	mov    %ecx,%edx
 80496e7:	0f 84 75 06 00 00    	je     8049d62 <tigetstr@plt+0xd12>
 80496ed:	8b 5c 24 44          	mov    0x44(%esp),%ebx					// ebx=var_44
 80496f1:	3b 59 1c             	cmp    0x1c(%ecx),%ebx
 80496f4:	8d 01                	lea    (%ecx),%eax
 80496f6:	75 11                	jne    8049709 <tigetstr@plt+0x6b9>
 80496f8:	e9 28 01 00 00       	jmp    8049825 <tigetstr@plt+0x7d5>
 80496fd:	8d 76 00             	lea    0x0(%esi),%esi
 8049700:	3b 58 1c             	cmp    0x1c(%eax),%ebx
 8049703:	0f 84 1c 01 00 00    	je     8049825 <tigetstr@plt+0x7d5>
 8049709:	8b 40 38             	mov    0x38(%eax),%eax
 804970c:	85 c0                	test   %eax,%eax
 804970e:	66 90                	xchg   %ax,%ax
 8049710:	75 ee                	jne    8049700 <tigetstr@plt+0x6b0>
 8049712:	83 3d a8 d1 04 08 00 	cmpl   $0x0,0x804d1a8
 8049719:	74 2d                	je     8049748 <tigetstr@plt+0x6f8>
 804971b:	8b 44 24 30          	mov    0x30(%esp),%eax
 804971f:	3b 41 1c             	cmp    0x1c(%ecx),%eax
 8049722:	0f 84 74 04 00 00    	je     8049b9c <tigetstr@plt+0xb4c>
 8049728:	8b 44 24 30          	mov    0x30(%esp),%eax
 804972c:	eb 0b                	jmp    8049739 <tigetstr@plt+0x6e9>
 804972e:	66 90                	xchg   %ax,%ax
 8049730:	3b 42 1c             	cmp    0x1c(%edx),%eax
 8049733:	0f 84 63 04 00 00    	je     8049b9c <tigetstr@plt+0xb4c>
 8049739:	8b 52 38             	mov    0x38(%edx),%edx
 804973c:	85 d2                	test   %edx,%edx
 804973e:	75 f0                	jne    8049730 <tigetstr@plt+0x6e0>
 8049740:	c7 44 24 30 01 00 00 	movl   $0x1,0x30(%esp)
 8049747:	00 
 8049748:	83 7c 24 34 00       	cmpl   $0x0,0x34(%esp)
 804974d:	0f 84 c7 04 00 00    	je     8049c1a <tigetstr@plt+0xbca>
 8049753:	8b 44 24 34          	mov    0x34(%esp),%eax
 8049757:	85 c9                	test   %ecx,%ecx
 8049759:	8b 50 08             	mov    0x8(%eax),%edx
 804975c:	89 c8                	mov    %ecx,%eax
 804975e:	0f 84 9b 05 00 00    	je     8049cff <tigetstr@plt+0xcaf>
 8049764:	83 79 1c 01          	cmpl   $0x1,0x1c(%ecx)
 8049768:	75 0c                	jne    8049776 <tigetstr@plt+0x726>
 804976a:	e9 97 05 00 00       	jmp    8049d06 <tigetstr@plt+0xcb6>
 804976f:	90                   	nop
 8049770:	83 78 1c 01          	cmpl   $0x1,0x1c(%eax)
 8049774:	74 07                	je     804977d <tigetstr@plt+0x72d>
 8049776:	8b 40 38             	mov    0x38(%eax),%eax
 8049779:	85 c0                	test   %eax,%eax
 804977b:	75 f3                	jne    8049770 <tigetstr@plt+0x720>
 804977d:	e8 2e 14 00 00       	call   804abb0 <tigetstr@plt+0x1b60>
 8049782:	83 3d 94 d1 04 08 00 	cmpl   $0x0,0x804d194
 8049789:	0f 84 4c 04 00 00    	je     8049bdb <tigetstr@plt+0xb8b>
 804978f:	a1 c0 d1 04 08       	mov    0x804d1c0,%eax
 8049794:	85 c0                	test   %eax,%eax
 8049796:	74 12                	je     80497aa <tigetstr@plt+0x75a>
 8049798:	89 04 24             	mov    %eax,(%esp)
 804979b:	e8 d0 f5 ff ff       	call   8048d70 <free@plt>
 80497a0:	c7 05 c0 d1 04 08 00 	movl   $0x0,0x804d1c0
 80497a7:	00 00 00 
 80497aa:	a1 bc d1 04 08       	mov    0x804d1bc,%eax
 80497af:	85 c0                	test   %eax,%eax
 80497b1:	74 12                	je     80497c5 <tigetstr@plt+0x775>
 80497b3:	89 04 24             	mov    %eax,(%esp)
 80497b6:	e8 b5 f5 ff ff       	call   8048d70 <free@plt>
 80497bb:	c7 05 bc d1 04 08 00 	movl   $0x0,0x804d1bc
 80497c2:	00 00 00 
 80497c5:	31 db                	xor    %ebx,%ebx
 80497c7:	83 3d a0 d1 04 08 01 	cmpl   $0x1,0x804d1a0	// g_0x804d1a0
 80497ce:	c7 05 c4 d1 04 08 00 	movl   $0x0,0x804d1c4
 80497d5:	00 00 00 
 80497d8:	0f 85 cd fa ff ff    	jne    80492ab <tigetstr@plt+0x25b>     // jump to here, main() exit
 80497de:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 80497e5:	00 
 80497e6:	c7 44 24 04 9e b8 04 	movl   $0x804b89e,0x4(%esp)		// "Press return to close\n"
 80497ed:	08 
 80497ee:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 80497f5:	e8 b6 f5 ff ff       	call   8048db0 <dcgettext@plt>
 80497fa:	89 44 24 08          	mov    %eax,0x8(%esp)
 80497fe:	a1 64 d1 04 08       	mov    0x804d164,%eax
 8049803:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 804980a:	00 
 804980b:	89 04 24             	mov    %eax,(%esp)
 804980e:	e8 7d f7 ff ff       	call   8048f90 <__fprintf_chk@plt>
 8049813:	a1 6c d1 04 08       	mov    0x804d16c,%eax
 8049818:	89 04 24             	mov    %eax,(%esp)
 804981b:	e8 b0 f5 ff ff       	call   8048dd0 <_IO_getc@plt>
 8049820:	e9 86 fa ff ff       	jmp    80492ab <tigetstr@plt+0x25b>     // jump to here, main() exit
 8049825:	80 48 2c 01          	orb    $0x1,0x2c(%eax)
 8049829:	8b 40 34             	mov    0x34(%eax),%eax
 804982c:	85 c0                	test   %eax,%eax
 804982e:	0f 84 de fe ff ff    	je     8049712 <tigetstr@plt+0x6c2>
 8049834:	80 48 2c 01          	orb    $0x1,0x2c(%eax)
 8049838:	8b 40 34             	mov    0x34(%eax),%eax
 804983b:	85 c0                	test   %eax,%eax
 804983d:	75 e6                	jne    8049825 <tigetstr@plt+0x7d5>
 804983f:	e9 ce fe ff ff       	jmp    8049712 <tigetstr@plt+0x6c2>*/

#if 0
// if (ret == 2) jump here...
 /*8049844:	31 c0                	xor    %eax,%eax		// eax=0
 8049846:	83 c9 ff             	or     $0xffffffff,%ecx	// ecx=-1
 8049849:	8d 3e                	lea    (%esi),%edi		// edi="/proc/1" =p_malloc
 804984b:	f2 ae                	repnz scas %es:(%edi),%al	// edi?=al, edi+1, ecx-1, edi!=al,so zf=0, 当ZF=0,且CX/ECX<>0时重复
 804984d:	f7 d1                	not    %ecx				// ecx=8
 804984f:	83 c1 09             	add    $0x9,%ecx		// ecx=17
 8049852:	89 0c 24             	mov    %ecx,(%esp)
 8049855:	e8 36 f6 ff ff       	call   8048e90 <malloc@plt>*/

	char *proc_m = (char*)malloc(17);
    if (proc_m == NULL)
            exit(2);

 /*804985a:	85 c0                	test   %eax,%eax	// zf=0
 804985c:	89 c7                	mov    %eax,%edi	// edi=proc_m
 804985e:	89 44 24 20          	mov    %eax,0x20(%esp)	// (esp+0x20)=proc_m
 8049862:	0f 84 be 04 00 00    	je     8049d26 <tigetstr@plt+0xcd6>	// if zf=1 than jump. no jump, exit(2)
 8049868:	8b 44 24 40          	mov    0x40(%esp),%eax				// eax=(esp+0x40)=pstrchr, eax="(systemd"
 804986c:	89 74 24 10          	mov    %esi,0x10(%esp)				// 0xbfffcaf0:0x8056878:"/proc/1", esi=p_malloc
 8049870:	83 c0 01             	add    $0x1,%eax */					// eax=pstrchr+1="systemd"

    ++pstrchr;

 /*8049873:	c7 44 24 0c 4f b8 04 	movl   $0x804b84f,0xc(%esp)			// 0x0804b84f:"%s/task"
 804987a:	08 
 804987b:	c7 44 24 08 ff ff ff 	movl   $0xffffffff,0x8(%esp)
 8049882:	ff 
 8049883:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)			// (esp+0x4)=1
 804988a:	00 
 804988b:	89 3c 24             	mov    %edi,(%esp)				// (esp)=proc_m
 804988e:	89 44 24 24          	mov    %eax,0x24(%esp)			// (esp+0x24)=eax=pstrchr="systemd"
 8049892:	e8 a9 f7 ff ff       	call   8049040 <__sprintf_chk@plt>*/
    
	__sprintf_chk(proc_m, 1, -1, "%s/task", "/proc/1");
	printf("proc_m=%s\n", proc_m);

 /*8049897:	89 3c 24             	mov    %edi,(%esp)				// (esp)=proc_m="/proc/1/task"
 804989a:	e8 71 f7 ff ff       	call   8049010 <opendir@plt>*/
	
	DIR * pdir_proc_m = opendir(proc_m);
    if (pdir_proc_m != NULL) {

 /*804989f:	85 c0                	test   %eax,%eax			// zf=0
 80498a1:	89 44 24 40          	mov    %eax,0x40(%esp)		// (esp+0x40)=pdir_proc_m
 80498a5:	0f 84 3a 01 00 00    	je     80499e5 <tigetstr@plt+0x995>	// if zf=1 than jump, so No.
 80498ab:	c7 04 24 13 00 00 00 	movl   $0x13,(%esp)			// (esp)=19
 80498b2:	e8 d9 f5 ff ff       	call   8048e90 <malloc@plt>*/

	char *char_19 = (char*)malloc(19);

 /*80498b7:	85 c0                	test   %eax,%eax	// zf=0
 80498b9:	89 c1                	mov    %eax,%ecx	/ ecx=char_19
 80498bb:	89 44 24 38          	mov    %eax,0x38(%esp)	// (esp+0x38)=char_19
 80498bf:	0f 84 61 04 00 00    	je     8049d26 <tigetstr@plt+0xcd6>*/	// if zf=1 than jump, so No. exit(2)
    
    if (char_19 == NULL) {
        // jump 8049d26
        exit(2);
    }
    
 /*80498c5:	8b 44 24 24          	mov    0x24(%esp),%eax	// eax=(esp+0x24)=pstrchr="systemd"
 80498c9:	c7 44 24 10 10 00 00 	movl   $0x10,0x10(%esp)	// (esp+0x10)=0x10
 80498d0:	00 
 80498d1:	89 44 24 14          	mov    %eax,0x14(%esp)	// (esp+0x14)="systemd"
 80498d5:	c7 44 24 0c 57 b8 04 	movl   $0x804b857,0xc(%esp)	// 0x804b857="{%.*s}"
 80498dc:	08 
 80498dd:	c7 44 24 08 13 00 00 	movl   $0x13,0x8(%esp)		// (esp+0x8)=0x13
 80498e4:	00 
 80498e5:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)		// (esp+0x4)=0x1
 80498ec:	00 
 80498ed:	89 0c 24             	mov    %ecx,(%esp)			// (esp)=char_19
 80498f0:	e8 4b f7 ff ff       	call   8049040 <__sprintf_chk@plt>*/

	ret = __sprintf_chk(char_19, 0x1, 0x13, "{%.*s}", 0x10, "systemd");
	printf("ret = %d, char_19=%s\n", ret, char_19);

 /*80498f5:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 80498f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi
 8049900:	8b 44 24 40          	mov    0x40(%esp),%eax			// eax=DIR * pdir_proc_m
 8049904:	89 04 24             	mov    %eax,(%esp)				// esp=pdir_proc_m
 8049907:	e8 74 f6 ff ff       	call   8048f80 <readdir64@plt>*/
	
	long int ret_strtol_2 = -1;
	//readdir64(pdir_proc_m);
	while ((dp = readdir64(pdir_proc_m)) != NULL) {
		printf("name:%s\n", dp->d_name);    	
	
	// jmp 80499cd, while end.

 /*804990c:	85 c0                	test   %eax,%eax		// eax=dp
 804990e:	0f 84 b9 00 00 00    	je     80499cd <tigetstr@plt+0x97d>			// 没东西了，跳出
 8049914:	83 c0 13             	add    $0x13,%eax		// eax=dp->d_name
 8049917:	c7 44 24 08 0a 00 00 	movl   $0xa,0x8(%esp)	// (esp+0x8)=0xa
 804991e:	00 
 804991f:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)	// (esp+0x4)=0x0
 8049926:	00 
 8049927:	89 04 24             	mov    %eax,(%esp)		// (esp)=dp->d_name
 804992a:	e8 b1 f6 ff ff       	call   8048fe0 <strtol@plt>
 804992f:	85 c0                	test   %eax,%eax
 8049931:	89 c2                	mov    %eax,%edx	// edx=eax=strtol()
 8049933:	74 cb                	je     8049900 <tigetstr@plt+0x8b0>*/ // <. and ..>, jump two times. while ((dp = readdir64(pdir_proc_m)) != NULL)
		ret_strtol_2 = strtol(dp->d_name, &ptr, 0xa);
		printf("ret_strtol_2=%ld\n", ret_strtol_2);
		if (ret_strtol_2 != 0) {

 /*8049935:	39 c3                	cmp    %eax,%ebx						// ebx=ret_strtol
 8049937:	74 c7                	je     8049900 <tigetstr@plt+0x8b0>*/	// jump, while ((dp = readdir64(pdir_proc_m)) != NULL)
		    if (ret_strtol_2 != ret_strtol) {

 /*8049939:	83 3d b8 d1 04 08 00 	cmpl   $0x0,0x804d1b8				// 0x804d1b8:0x00000000	g_0x804d1b8
 8049940:	74 49                	je     804998b <tigetstr@plt+0x93b>*/	
		        if (g_0x804d1b8 != 0) {
	
 /*8049942:	8b 7c 24 38          	mov    0x38(%esp),%edi		// edi=(esp+0x38)=char_19
 8049946:	31 c0                	xor    %eax,%eax            // eax = 0
 8049948:	83 c9 ff             	or     $0xffffffff,%ecx     // ecx = 0xffffffff
 804994b:	f2 ae                	repnz scas %es:(%edi),%al   // strlen(char_19), ## 串扫描,把AL的内容与目标串作比较,比较结果反映在标志位,即计算字符串长度
 804994d:	8b 44 24 6c          	mov    0x6c(%esp),%eax      // eax = var_0x6c
 8049951:	8b 7c 24 38          	mov    0x38(%esp),%edi		// edi=(esp+0x38)=char_19
 8049955:	89 44 24 14          	mov    %eax,0x14(%esp)      // (esp+0x14)=var_0x6c      
 8049959:	8b 84 24 90 00 00 00 	mov    0x90(%esp),%eax      // eax=pstat_buf.st_uid ## 找esp+90最相近的值，如果是结构体，计算结构体长度 
 8049960:	f7 d1                	not    %ecx                 // 取反，正数的补码等于反码, ecx=strlen(char_19)+1
 8049962:	89 44 24 04          	mov    %eax,0x4(%esp)       // (esp+0x4)=pstat_buf.st_uid 
 8049966:	8b 44 24 68          	mov    0x68(%esp),%eax		// eax=scanc1
 804996a:	89 4c 24 0c          	mov    %ecx,0xc(%esp)       // (esp+0xc)=strlen(char_19)
 804996e:	89 04 24             	mov    %eax,(%esp)          // (esp)=scanc1
 8049971:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)      // (esp+0x10)=1
 8049978:	00 
 8049979:	89 7c 24 08          	mov    %edi,0x8(%esp)       // (esp+0x8)=char_19
 804997d:	89 d9                	mov    %ebx,%ecx            // ecx=ebx=ret_strtol
 804997f:	89 f8                	mov    %edi,%eax            // eax=char_19
 8049981:	e8 1a 14 00 00       	call   804ada0 <tigetstr@plt+0x1d50>    // 调用函数，函数执行完后回到while循环处
 8049986:	e9 75 ff ff ff       	jmp    8049900 <tigetstr@plt+0x8b0>*/
                              // eax      edx            ecx       (esp), (esp+0x4),        (esp+0x8), (esp+0xc),      (esp+0x10), (esp+0x14)
                    fun_804ada0(char_19, ret_strtol_2, ret_strtol, scanc1, pstat_buf.st_uid, char_19,  strlen(char_19)+1,   1,       var_0x6c);
                }   /* if (g_0x804d1b8 != 0) */
                else {
 
 /*804998b:	8b 44 24 6c          	mov    0x6c(%esp),%eax      // eax = var_0x6c
 804998f:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)      // (esp+0x10) = 1
 8049996:	00 
 8049997:	89 44 24 14          	mov    %eax,0x14(%esp)      // (esp+0x14) = var_0x6c
 804999b:	8b 84 24 90 00 00 00 	mov    0x90(%esp),%eax      // eax = pstat_buf.st_uid ## 找esp+90最相近的值，如果是结构体，计算结构体长度
 80499a2:	89 44 24 04          	mov    %eax,0x4(%esp)       // (esp+0x4) = pstat_buf.st_uid
 80499a6:	8b 44 24 68          	mov    0x68(%esp),%eax		// eax = scanc1
 80499aa:	89 04 24             	mov    %eax,(%esp)          // (esp) = scanc1
 80499ad:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)       // (esp+0xc) = 0, 也可能是NULL
 80499b4:	00 
 80499b5:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)       // (esp+0x8) = 0, 也可能是NULL
 80499bc:	00 
 80499bd:	89 d9                	mov    %ebx,%ecx            // ecx = ebx =ret_strtol
 80499bf:	8b 44 24 38          	mov    0x38(%esp),%eax		// eax=(esp+0x38)=char_19
 80499c3:	e8 d8 13 00 00       	call   804ada0 <tigetstr@plt+0x1d50>
 80499c8:	e9 33 ff ff ff       	jmp    8049900 <tigetstr@plt+0x8b0>*/

                    fun_804ada0(char_19, ret_strtol_2, ret_strtol, scanc1, pstat_buf.st_uid, 0, 0, 1, var_0x6c);
                }   /* if (g_0x804d1b8 == 0) */
            }   /* if (ret_strtol_2 != 1) */
        }       /* if (ret_strtol_2 != 0) */
	}   /* while ((dp = readdir64(pdir_proc_m)) != NULL) */

 /*80499cd:	8b 44 24 38          	mov    0x38(%esp),%eax		// eax=(esp+0x38)=char_19
 80499d1:	89 04 24             	mov    %eax,(%esp)
 80499d4:	e8 97 f3 ff ff       	call   8048d70 <free@plt> */  // free(char_19)

    free(char_19);

 /*80499d9:	8b 44 24 40          	mov    0x40(%esp),%eax      // (esp+0x40) = DIR * pdir_proc_m
 80499dd:	89 04 24             	mov    %eax,(%esp)
 80499e0:	e8 1b f6 ff ff       	call   8049000 <closedir@plt>*/ // chosedir(pdir_proc_m)

    chosedir(pdir_proc_m);

    }   /* if (pdir_proc_m != NULL) */

 /*80499e5:	8b 44 24 20          	mov    0x20(%esp),%eax      // (esp+0x20)=proc_m
 80499e9:	89 04 24             	mov    %eax,(%esp)
 80499ec:	e8 7f f3 ff ff       	call   8048d70 <free@plt>*/   // free(proc_m)
    free(proc_m);

 /*80499f1:	83 3d b8 d1 04 08 00 	cmpl   $0x0,0x804d1b8				// g_0x804d1b8
 80499f8:	0f 84 16 01 00 00    	je     8049b14 <tigetstr@plt+0xac4>*/
    if (g_0x804d1b8 != 0) {
       

 /*80499fe:	89 5c 24 14          	mov    %ebx,0x14(%esp)      // (esp+0x14)=ret_strtol
 8049a02:	c7 44 24 10 2c b8 04 	movl   $0x804b82c,0x10(%esp)		// "/proc"
 8049a09:	08 
 8049a0a:	c7 44 24 0c 5e b8 04 	movl   $0x804b85e,0xc(%esp)			// "%s/%d/cmdline"
 8049a11:	08 
 8049a12:	c7 44 24 08 ff ff ff 	movl   $0xffffffff,0x8(%esp)    // (esp+0x8)=-1
 8049a19:	ff 
 8049a1a:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)           // (esp+0x4)=1
 8049a21:	00 
 8049a22:	89 34 24             	mov    %esi,(%esp)              // (esp)=esi=p_malloc
 8049a25:	e8 16 f6 ff ff       	call   8049040 <__sprintf_chk@plt>*/

    __sprintf_chk(p_malloc, 1, -1, "%s/%d/cmdline", "/proc", ret_strtol);

 /*8049a2a:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)       // (esp+0x4)=0
 8049a31:	00 
 8049a32:	89 34 24             	mov    %esi,(%esp)          // (esp)=esi=p_malloc
 8049a35:	e8 e6 f2 ff ff       	call   8048d20 <open64@plt> */
    // #define O_RDONLY	00000000
    int fd = open(p_malloc, O_RDONLY);
    if (fd < 0) {

 /*8049a3a:	85 c0                	test   %eax,%eax
 8049a3c:	89 c7                	mov    %eax,%edi    // edi=fd
 8049a3e:	0f 88 c9 02 00 00    	js     8049d0d <tigetstr@plt+0xcbd>*/ // exit(1)
        perror(p_malloc);
        exit(1);
    }

 /*8049a44:	8b 44 24 2c          	mov    0x2c(%esp),%eax  // eax=var_0x2c
 8049a48:	89 3c 24             	mov    %edi,(%esp)      // (esp)=fd
 8049a4b:	89 44 24 08          	mov    %eax,0x8(%esp)   // (esp+0x8)=var_0x2c
 8049a4f:	8b 44 24 28          	mov    0x28(%esp),%eax  // (esp+0x28)=char * var_0x28
 8049a53:	89 44 24 04          	mov    %eax,0x4(%esp)   // (esp+0x4)=char * var_0x28
 8049a57:	e8 e4 f2 ff ff       	call   8048d40 <read@plt>
 8049a5c:	85 c0                	test   %eax,%eax
 8049a5e:	0f 88 a9 02 00 00    	js     8049d0d <tigetstr@plt+0xcbd>*/ // exit(1)
    var_0x40 = read(fd, var_0x28, var_0x2c);
    if (var_0x40 < 0) {
        perror(p_malloc);
        exit(1);
    }
 /*8049a64:	89 3c 24             	mov    %edi,(%esp)                  // (esp)=fd
 8049a67:	89 44 24 40          	mov    %eax,0x40(%esp)          (esp+0x40)=var_0x40
 8049a6b:	e8 80 f5 ff ff       	call   8048ff0 <close@plt>*/
    close(fd);

 /*8049a70:	8b 54 24 40          	mov    0x40(%esp),%edx      // edx=var_0x40
 8049a74:	3b 54 24 2c          	cmp    0x2c(%esp),%edx      // edx=var_0x40
 8049a78:	83 d2 ff             	adc    $0xffffffff,%edx*/     // edx=var_0x40+(-1), --> var_0x40-1,  CF sign
    
    if (var_0x40 >= var_0x2c)
        var_0x40--;

 /*8049a7b:	85 d2                	test   %edx,%edx            // edx = var_0x40
 8049a7d:	74 0b                	je     8049a8a <tigetstr@plt+0xa3a>*/

    if (var_0x40 != 0) {

 /*8049a7f:	8b 44 24 28          	mov    0x28(%esp),%eax      // (esp+0x28)=char * var_0x28
 8049a83:	c6 04 10 00          	movb   $0x0,(%eax,%edx,1)   // var_0x28[var_0x40*1] = 0;
 8049a87:	83 c2 01             	add    $0x1,%edx */         // var_0x40++;

        var_0x28[var_0x40++] = 0;
    }   /* if (var_0x40 != 0) */

 /*8049a8a:	8b 44 24 6c          	mov    0x6c(%esp),%eax  // eax=var_0x6c
 8049a8e:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)  // (esp+0x10) = 0;
 8049a95:	00 
 8049a96:	89 44 24 14          	mov    %eax,0x14(%esp)  // (esp+0x14)=var_0x6c
 8049a9a:	8b 44 24 28          	mov    0x28(%esp),%eax      // (esp+0x28)=char * var_0x28
 8049a9e:	89 54 24 0c          	mov    %edx,0xc(%esp)       // (esp+0xc)=var_0x40
 8049aa2:	89 44 24 08          	mov    %eax,0x8(%esp) */    // (esp+0x8)=char *var_0x28

    /* 此处总用else以下代码，因参数不同，导致有两处跳转，下面指令为相同参数，请注意 */
    fun_804ada0(pstrchr, ret_strtol, scanf2, scanc1, pstat_buf.st_uid, var_0x28, var_0x40, 0, var_0x6c);

    } else {  /* if (g_0x804d1b8 == 0) */
        // jump 8049b14 ---> 8049aa6
 /*8049aa6:	8b 84 24 90 00 00 00 	mov    0x90(%esp),%eax      // eax=pstat_buf.st_uid
 8049aad:	8b 4c 24 64          	mov    0x64(%esp),%ecx		// ecx=scanf2
 8049ab1:	89 44 24 04          	mov    %eax,0x4(%esp)       // (esp+0x4)=pstat_buf.st_uid
 8049ab5:	8b 44 24 68          	mov    0x68(%esp),%eax		// eax=scanc1
 8049ab9:	89 04 24             	mov    %eax,(%esp)          // (esp)=scanc1
 8049abc:	89 da                	mov    %ebx,%edx            // edx=ebx=ret_strtol
 8049abe:	8b 44 24 24          	mov    0x24(%esp),%eax      // eax=pstrchr
 8049ac2:	e8 d9 12 00 00       	call   804ada0 <tigetstr@plt+0x1d50>
 8049ac7:	e9 65 fb ff ff       	jmp    8049631 <tigetstr@plt+0x5e1> */    // fclose(fp_1)
     
        fun_804ada0(pstrchr, ret_strtol, scanf2, scanc1, pstat_buf.st_uid, 0, 0, 0, var_0x6c);

    }   /* if (g_0x804d1b8 != 0) */

 /*8049acc:	c7 44 24 28 00 00 00 	movl   $0x0,0x28(%esp)	// (esp+0x28)=char * var_0x28=0
 8049ad3:	00 
 8049ad4:	e9 7e f9 ff ff       	jmp    8049457 <tigetstr@plt+0x407>
 8049ad9:	89 da                	mov    %ebx,%edx
 8049adb:	89 f0                	mov    %esi,%eax
 8049add:	e8 0e 12 00 00       	call   804acf0 <tigetstr@plt+0x1ca0>    // fun_804acf0
 8049ae2:	89 73 34             	mov    %esi,0x34(%ebx)
 8049ae5:	e9 d7 fb ff ff       	jmp    80496c1 <tigetstr@plt+0x671>
 8049aea:	a1 64 d1 04 08       	mov    0x804d164,%eax
 8049aef:	c7 44 24 08 39 00 00 	movl   $0x39,0x8(%esp)
 8049af6:	00 
 8049af7:	89 44 24 0c          	mov    %eax,0xc(%esp)
 8049afb:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 8049b02:	00 
 8049b03:	c7 04 24 2c b7 04 08 	movl   $0x804b72c,(%esp)	// "Warning: -Z ignored. Requires anx SELinux enabled kernel\n"
 8049b0a:	e8 21 f3 ff ff       	call   8048e30 <fwrite@plt>
 8049b0f:	e9 6c f6 ff ff       	jmp    8049180 <tigetstr@plt+0x130> */ // break of getopt_long 

 /*8049b14:	8b 44 24 6c          	mov    0x6c(%esp),%eax  // eax=var_0x6c
 8049b18:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)  // (esp+0x10)=0
 8049b1f:	00 
 8049b20:	89 44 24 14          	mov    %eax,0x14(%esp)  // (esp+0x14)=var_0x6c
 8049b24:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)   // (esp+0xc)=0
 8049b2b:	00 
 8049b2c:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)       // esp+0x8 = 0
 8049b33:	00 
 8049b34:	e9 6d ff ff ff       	jmp    8049aa6 <tigetstr@plt+0xa56>*/
 #endif

 /*8049b39:	8b 44 24 28          	mov    0x28(%esp),%eax      // (esp+0x28)=char * var_0x28
 8049b3d:	89 04 24             	mov    %eax,(%esp)
 8049b40:	e8 2b f2 ff ff       	call   8048d70 <free@plt>   // free(var_0x28)
 8049b45:	e9 8b fb ff ff       	jmp    80496d5 <tigetstr@plt+0x685>*/

 /*8049b4a:	e8 e1 f4 ff ff       	call   8049030 <__ctype_b_loc@plt>  // if (argc - 1 == optind) jump here.
 8049b4f:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx              // ecx=argv
 8049b53:	8b 00                	mov    (%eax),%eax                  // eax=*__ctype_b_loc
 8049b55:	8b 14 99             	mov    (%ecx,%ebx,4),%edx           // edx=ecx+ebx*4=argv[argc*4]=argv[argc++]
 8049b58:	0f be 0a             	movsbl (%edx),%ecx                  // ecx=(edx)=*argv[argc++], ecx=0x31='1'
 8049b5b:	f6 44 48 01 08       	testbf  $0x8,0x1(%eax,%ecx,2)        // eax+ecx*2+0x1 ? 0x8,  if (isdigit(*argv[optind]))
 8049b60:	8b 45 08             	mov    0x8(%ebp),%eax               // eax=argc
 8049b63:	a3 68 d1 04 08       	mov    %eax,0x804d168               // optind=argc
 8049b68:	0f 84 f4 00 00 00    	je     8049c62 <tigetstr@plt+0xc12> // else
 8049b6e:	8d 44 24 5c          	lea    0x5c(%esp),%eax              // eax=esp+0x5c
 8049b72:	c7 44 24 08 0a 00 00 	movl   $0xa,0x8(%esp)               // esp+0x8=0ax
 8049b79:	00 
 8049b7a:	89 44 24 04          	mov    %eax,0x4(%esp)               // esp+0x4=esp+0x5c
 8049b7e:	89 14 24             	mov    %edx,(%esp)                  // (esp)=argv[optind]
 8049b81:	e8 5a f4 ff ff       	call   8048fe0 <strtol@plt>         // strtol(esp, esp+0x4, esp+0x8)
 8049b86:	89 44 24 30          	mov    %eax,0x30(%esp)              // (esp)+0x30=strtol
 8049b8a:	8b 44 24 5c          	mov    0x5c(%esp),%eax              // eax=esp+0x5c
 8049b8e:	80 38 00             	cmpb   $0x0,(%eax)                  // (eax) ?= 0
 8049b91:	0f 84 56 f8 ff ff    	je     80493ed <tigetstr@plt+0x39d> // if (argc - 1 == optind) 结束后继续
 8049b97:	e9 a7 f7 ff ff       	jmp    8049343 <tigetstr@plt+0x2f3>     // call help()
 8049b9c:	8b 72 34             	mov    0x34(%edx),%esi
 8049b9f:	85 f6                	test   %esi,%esi
 8049ba1:	0f 84 99 fb ff ff    	je     8049740 <tigetstr@plt+0x6f0>
 8049ba7:	c7 46 30 00 00 00 00 	movl   $0x0,0x30(%esi)
 8049bae:	89 f0                	mov    %esi,%eax
 8049bb0:	e8 3b 11 00 00       	call   804acf0 <tigetstr@plt+0x1ca0>    // fun_804acf0
 8049bb5:	8d 16                	lea    (%esi),%edx
 8049bb7:	eb 10                	jmp    8049bc9 <tigetstr@plt+0xb79>
 8049bb9:	c7 43 30 00 00 00 00 	movl   $0x0,0x30(%ebx)
 8049bc0:	89 d8                	mov    %ebx,%eax
 8049bc2:	e8 29 11 00 00       	call   804acf0 <tigetstr@plt+0x1ca0>    // fun_804acf0
 8049bc7:	8d 13                	lea    (%ebx),%edx
 8049bc9:	8b 5a 34             	mov    0x34(%edx),%ebx
 8049bcc:	85 db                	test   %ebx,%ebx
 8049bce:	75 e9                	jne    8049bb9 <tigetstr@plt+0xb69>
 8049bd0:	8b 0d c8 d1 04 08    	mov    0x804d1c8,%ecx
 8049bd6:	e9 65 fb ff ff       	jmp    8049740 <tigetstr@plt+0x6f0>
 8049bdb:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 8049be2:	00 
 8049be3:	c7 44 24 04 89 b8 04 	movl   $0x804b889,0x4(%esp)		// "No processes found.\n"
 8049bea:	08 
 8049beb:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 8049bf2:	bb 01 00 00 00       	mov    $0x1,%ebx                // ebx=1
 8049bf7:	e8 b4 f1 ff ff       	call   8048db0 <dcgettext@plt>
 8049bfc:	89 44 24 08          	mov    %eax,0x8(%esp)
 8049c00:	a1 64 d1 04 08       	mov    0x804d164,%eax
 8049c05:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 8049c0c:	00 
 8049c0d:	89 04 24             	mov    %eax,(%esp)
 8049c10:	e8 7b f3 ff ff       	call   8048f90 <__fprintf_chk@plt>
 8049c15:	e9 91 f6 ff ff       	jmp    80492ab <tigetstr@plt+0x25b>     // jump to here, main() exit
 8049c1a:	8b 44 24 30          	mov    0x30(%esp),%eax
 8049c1e:	eb 0c                	jmp    8049c2c <tigetstr@plt+0xbdc>
 8049c20:	3b 41 1c             	cmp    0x1c(%ecx),%eax
 8049c23:	0f 84 a5 00 00 00    	je     8049cce <tigetstr@plt+0xc7e>
 8049c29:	8b 49 38             	mov    0x38(%ecx),%ecx		
 8049c2c:	85 c9                	test   %ecx,%ecx
 8049c2e:	75 f0                	jne    8049c20 <tigetstr@plt+0xbd0>
 8049c30:	31 c0                	xor    %eax,%eax
 8049c32:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
 8049c39:	00 
 8049c3a:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
 8049c41:	00 
 8049c42:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 8049c49:	00 
 8049c4a:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 8049c51:	b9 01 00 00 00       	mov    $0x1,%ecx
 8049c56:	31 d2                	xor    %edx,%edx
 8049c58:	e8 73 06 00 00       	call   804a2d0 <tigetstr@plt+0x1280>
 8049c5d:	e9 2d fb ff ff       	jmp    804978f <tigetstr@plt+0x73f>
 8049c62:	89 14 24             	mov    %edx,(%esp)                      // if (isdigit(*argv[optind])) -> else, edx=argv[optind]
 8049c65:	e8 86 f0 ff ff       	call   8048cf0 <getpwnam@plt>           // getpwnam(argv[optind])
 8049c6a:	85 c0                	test   %eax,%eax
 8049c6c:	89 44 24 34          	mov    %eax,0x34(%esp)
 8049c70:	c7 44 24 30 01 00 00 	movl   $0x1,0x30(%esp)
 8049c77:	00 
 8049c78:	0f 85 77 f7 ff ff    	jne    80493f5 <tigetstr@plt+0x3a5>     // 往下继续执行
 8049c7e:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx          // ecx=(esp+0x4c)=argv
 8049c82:	a1 68 d1 04 08       	mov    0x804d168,%eax           // eax=optind
 8049c87:	8b 5c 81 fc          	mov    -0x4(%ecx,%eax,4),%ebx   // ebx=ecx+eax*4-0x4=argv[argc--]
 8049c8b:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 8049c92:	00 
 8049c93:	c7 44 24 04 15 b8 04 	movl   $0x804b815,0x4(%esp)		// "No such user name: %s\n"
 8049c9a:	08 
 8049c9b:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 8049ca2:	e8 09 f1 ff ff       	call   8048db0 <dcgettext@plt>
 8049ca7:	89 44 24 08          	mov    %eax,0x8(%esp)
 8049cab:	a1 64 d1 04 08       	mov    0x804d164,%eax
 8049cb0:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
 8049cb4:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 8049cbb:	00 
 8049cbc:	89 04 24             	mov    %eax,(%esp)
 8049cbf:	bb 01 00 00 00       	mov    $0x1,%ebx
 8049cc4:	e8 c7 f2 ff ff       	call   8048f90 <__fprintf_chk@plt>  // fprintf("No such user name: %s\n")
 8049cc9:	e9 dd f5 ff ff       	jmp    80492ab <tigetstr@plt+0x25b>     // jump to here, main() exit

 8049cce:	89 c8                	mov    %ecx,%eax
 8049cd0:	e9 5d ff ff ff       	jmp    8049c32 <tigetstr@plt+0xbe2>
 8049cd5:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 8049cdc:	00 
 8049cdd:	c7 44 24 04 f3 b7 04 	movl   $0x804b7f3,0x4(%esp)	// "TERM is not set\n"
 8049ce4:	08 
 8049ce5:	e9 01 ff ff ff       	jmp    8049beb <tigetstr@plt+0xb9b>
 8049cea:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 8049cf1:	00 
 8049cf2:	c7 44 24 04 08 b7 04 	movl   $0x804b708,0x4(%esp)	// "Can't get terminal capabilities\n"
 8049cf9:	08 
 8049cfa:	e9 ec fe ff ff       	jmp    8049beb <tigetstr@plt+0xb9b>
 8049cff:	31 c0                	xor    %eax,%eax
 8049d01:	e9 77 fa ff ff       	jmp    804977d <tigetstr@plt+0x72d>
 8049d06:	89 c8                	mov    %ecx,%eax
 8049d08:	e9 70 fa ff ff       	jmp    804977d <tigetstr@plt+0x72d>*/

 /*8049d0d:	89 34 24             	mov    %esi,(%esp)
 8049d10:	e8 0b f1 ff ff       	call   8048e20 <perror@plt>
 8049d15:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 8049d1c:	e8 8f f1 ff ff       	call   8048eb0 <exit@plt>*/

 /*8049d21:	e8 9a f0 ff ff       	call   8048dc0 <__stack_chk_fail@plt>*/

 /*8049d26:	c7 04 24 02 00 00 00 	movl   $0x2,(%esp)
 8049d2d:	e8 7e f1 ff ff       	call   8048eb0 <exit@plt>*/

 /* if (var_0x28 == NULL) */
 /*8049d32:	c7 04 24 9c b7 04 08 	movl   $0x804b79c,(%esp)	// "malloc"
 8049d39:	e8 e2 f0 ff ff       	call   8048e20 <perror@plt> // perror("malloc");
 8049d3e:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 8049d45:	e8 66 f1 ff ff       	call   8048eb0 <exit@plt>*/ // exit(1)

 /* if (pdir == NULL) */
 /*8049d4a:	c7 04 24 2c b8 04 08 	movl   $0x804b82c,(%esp)	// "/proc"
 8049d51:	e8 ca f0 ff ff       	call   8048e20 <perror@plt> // perror("/proc");
 8049d56:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 8049d5d:	e8 4e f1 ff ff       	call   8048eb0 <exit@plt>*/   // exit(1)

 /*8049d62:	83 3d a8 d1 04 08 00 	cmpl   $0x0,0x804d1a8
 8049d69:	0f 85 d1 f9 ff ff    	jne    8049740 <tigetstr@plt+0x6f0>
 8049d6f:	e9 d4 f9 ff ff       	jmp    8049748 <tigetstr@plt+0x6f8>
 8049d74:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 8049d7b:	00 
 8049d7c:	c7 44 24 04 6c b8 04 	movl   $0x804b86c,0x4(%esp)	// "%s is empty (not mounted ?)\n"
 8049d83:	08 
 8049d84:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 8049d8b:	e8 20 f0 ff ff       	call   8048db0 <dcgettext@plt>
 8049d90:	89 44 24 08          	mov    %eax,0x8(%esp)
 8049d94:	a1 64 d1 04 08       	mov    0x804d164,%eax
 8049d99:	c7 44 24 0c 2c b8 04 	movl   $0x804b82c,0xc(%esp)	// "/proc"
 8049da0:	08 
 8049da1:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 8049da8:	00 
 8049da9:	89 04 24             	mov    %eax,(%esp)
 8049dac:	e8 df f1 ff ff       	call   8048f90 <__fprintf_chk@plt>  // fprintf(stderr, "%s is empty (not mounted ?)\n", "/proc"); 
 8049db1:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 8049db8:	e8 f3 f0 ff ff       	call   8048eb0 <exit@plt>   // exit(1)
 8049dbd:	66 90                	xchg   %ax,%ax
 8049dbf:	90                   	nop
 8049dc0:	31 ed                	xor    %ebp,%ebp
 8049dc2:	5e                   	pop    %esi
 8049dc3:	89 e1                	mov    %esp,%ecx
 8049dc5:	83 e4 f0             	and    $0xfffffff0,%esp
 8049dc8:	50                   	push   %eax
 8049dc9:	54                   	push   %esp
 8049dca:	52                   	push   %edx
 8049dcb:	68 60 b1 04 08       	push   $0x804b160
 8049dd0:	68 f0 b0 04 08       	push   $0x804b0f0
 8049dd5:	51                   	push   %ecx
 8049dd6:	56                   	push   %esi
 8049dd7:	68 60 90 04 08       	push   $0x8049060		// "U\271@"
 8049ddc:	e8 0f f1 ff ff       	call   8048ef0 <__libc_start_main@plt>
 8049de1:	f4                   	hlt    
 8049de2:	66 90                	xchg   %ax,%ax
 8049de4:	66 90                	xchg   %ax,%ax
 8049de6:	66 90                	xchg   %ax,%ax
 8049de8:	66 90                	xchg   %ax,%ax
 8049dea:	66 90                	xchg   %ax,%ax
 8049dec:	66 90                	xchg   %ax,%ax
 8049dee:	66 90                	xchg   %ax,%ax
 8049df0:	8b 1c 24             	mov    (%esp),%ebx
 8049df3:	c3                   	ret    
 8049df4:	66 90                	xchg   %ax,%ax
 8049df6:	66 90                	xchg   %ax,%ax
 8049df8:	66 90                	xchg   %ax,%ax
 8049dfa:	66 90                	xchg   %ax,%ax
 8049dfc:	66 90                	xchg   %ax,%ax
 8049dfe:	66 90                	xchg   %ax,%ax
 8049e00:	b8 4b d1 04 08       	mov    $0x804d14b,%eax	// ""
 8049e05:	2d 48 d1 04 08       	sub    $0x804d148,%eax	// ""
 8049e0a:	83 f8 06             	cmp    $0x6,%eax
 8049e0d:	77 01                	ja     8049e10 <tigetstr@plt+0xdc0>
 8049e0f:	c3                   	ret    
 8049e10:	b8 00 00 00 00       	mov    $0x0,%eax
 8049e15:	85 c0                	test   %eax,%eax
 8049e17:	74 f6                	je     8049e0f <tigetstr@plt+0xdbf>
 8049e19:	55                   	push   %ebp
 8049e1a:	89 e5                	mov    %esp,%ebp
 8049e1c:	8d 64 24 e8          	lea    -0x18(%esp),%esp
 8049e20:	c7 04 24 48 d1 04 08 	movl   $0x804d148,(%esp)	// 0
 8049e27:	ff d0                	call   *%eax
 8049e29:	c9                   	leave  
 8049e2a:	c3                   	ret    
 8049e2b:	90                   	nop
 8049e2c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 8049e30:	b8 48 d1 04 08       	mov    $0x804d148,%eax		// 0
 8049e35:	2d 48 d1 04 08       	sub    $0x804d148,%eax		// 0
 8049e3a:	c1 f8 02             	sar    $0x2,%eax
 8049e3d:	89 c2                	mov    %eax,%edx
 8049e3f:	c1 ea 1f             	shr    $0x1f,%edx
 8049e42:	01 d0                	add    %edx,%eax
 8049e44:	d1 f8                	sar    %eax
 8049e46:	75 01                	jne    8049e49 <tigetstr@plt+0xdf9>
 8049e48:	c3                   	ret    
 8049e49:	ba 00 00 00 00       	mov    $0x0,%edx
 8049e4e:	85 d2                	test   %edx,%edx
 8049e50:	74 f6                	je     8049e48 <tigetstr@plt+0xdf8>
 8049e52:	55                   	push   %ebp
 8049e53:	89 e5                	mov    %esp,%ebp
 8049e55:	8d 64 24 e8          	lea    -0x18(%esp),%esp
 8049e59:	89 44 24 04          	mov    %eax,0x4(%esp)
 8049e5d:	c7 04 24 48 d1 04 08 	movl   $0x804d148,(%esp)
 8049e64:	ff d2                	call   *%edx
 8049e66:	c9                   	leave  
 8049e67:	c3                   	ret    
 8049e68:	90                   	nop
 8049e69:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 8049e70:	80 3d 8c d1 04 08 00 	cmpb   $0x0,0x804d18c		// 0
 8049e77:	75 18                	jne    8049e91 <tigetstr@plt+0xe41>
 8049e79:	55                   	push   %ebp
 8049e7a:	89 e5                	mov    %esp,%ebp
 8049e7c:	8d 64 24 f8          	lea    -0x8(%esp),%esp
 8049e80:	e8 7b ff ff ff       	call   8049e00 <tigetstr@plt+0xdb0>
 8049e85:	c6 05 8c d1 04 08 01 	movb   $0x1,0x804d18c
 8049e8c:	90                   	nop
 8049e8d:	90                   	nop
 8049e8e:	90                   	nop
 8049e8f:	90                   	nop
 8049e90:	c9                   	leave  
 8049e91:	c3                   	ret    
 8049e92:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 8049e99:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi
 8049ea0:	a1 00 cf 04 08       	mov    0x804cf00,%eax
 8049ea5:	85 c0                	test   %eax,%eax
 8049ea7:	74 1f                	je     8049ec8 <tigetstr@plt+0xe78>
 8049ea9:	b8 00 00 00 00       	mov    $0x0,%eax
 8049eae:	85 c0                	test   %eax,%eax
 8049eb0:	74 16                	je     8049ec8 <tigetstr@plt+0xe78>
 8049eb2:	55                   	push   %ebp
 8049eb3:	89 e5                	mov    %esp,%ebp
 8049eb5:	8d 64 24 e8          	lea    -0x18(%esp),%esp
 8049eb9:	c7 04 24 00 cf 04 08 	movl   $0x804cf00,(%esp)	// 0
 8049ec0:	ff d0                	call   *%eax
 8049ec2:	c9                   	leave  
 8049ec3:	e9 68 ff ff ff       	jmp    8049e30 <tigetstr@plt+0xde0>
 8049ec8:	e9 63 ff ff ff       	jmp    8049e30 <tigetstr@plt+0xde0>
 8049ecd:	66 90                	xchg   %ax,%ax
 8049ecf:	90                   	nop*/
}

void help() 
{
 /*8049ed0:	8d 64 24 e4          	lea    -0x1c(%esp),%esp
 8049ed4:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 8049edb:	00 
 8049edc:	c7 44 24 04 8c b1 04 	movl   $0x804b18c,0x4(%esp)	// debug.txt
 8049ee3:	08 
 8049ee4:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 8049eeb:	e8 c0 ee ff ff       	call   8048db0 <dcgettext@plt>
 8049ef0:	89 44 24 08          	mov    %eax,0x8(%esp)
 8049ef4:	a1 64 d1 04 08       	mov    0x804d164,%eax
 8049ef9:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 8049f00:	00 
 8049f01:	89 04 24             	mov    %eax,(%esp)
 8049f04:	e8 87 f0 ff ff       	call   8048f90 <__fprintf_chk@plt>
 8049f09:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 8049f10:	00 
 8049f11:	c7 44 24 04 38 b5 04 	movl   $0x804b538,0x4(%esp)	//d.txt
 8049f18:	08 
 8049f19:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 8049f20:	e8 8b ee ff ff       	call   8048db0 <dcgettext@plt>
 8049f25:	89 44 24 08          	mov    %eax,0x8(%esp)
 8049f29:	a1 64 d1 04 08       	mov    0x804d164,%eax
 8049f2e:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 8049f35:	00 
 8049f36:	89 04 24             	mov    %eax,(%esp)
 8049f39:	e8 52 f0 ff ff       	call   8048f90 <__fprintf_chk@plt>
 8049f3e:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 8049f45:	00 
 8049f46:	c7 44 24 04 78 b5 04 	movl   $0x804b578,0x4(%esp)	// d.txt
 8049f4d:	08 
 8049f4e:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 8049f55:	e8 56 ee ff ff       	call   8048db0 <dcgettext@plt>
 8049f5a:	89 44 24 08          	mov    %eax,0x8(%esp)
 8049f5e:	a1 64 d1 04 08       	mov    0x804d164,%eax
 8049f63:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 8049f6a:	00 
 8049f6b:	89 04 24             	mov    %eax,(%esp)
 8049f6e:	e8 1d f0 ff ff       	call   8048f90 <__fprintf_chk@plt>
 8049f73:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 8049f7a:	e8 31 ef ff ff       	call   8048eb0 <exit@plt>
 8049f7f:	90                   	nop*/
     fprintf(stderr,
            "%s", 
            ("Usage: pstree [ -a ] [ -c ] [ -h | -H PID ] [ -l ] [ -n ] [ -p ] [ -g ] [ -u ]\n"
             "              [ -A | -G | -U ] [ PID | USER ]\n"
             "       pstree -V\n" "Display a tree of processes.\n\n"
             "  -a, --arguments     show command line arguments\n"
             "  -A, --ascii         use ASCII line drawing characters\n"
             "  -c, --compact       don't compact identical subtrees\n"
             "  -h, --highlight-all highlight current process and its ancestors\n"
             "  -H PID,\n"
             "  --highlight-pid=PID highlight this process and its ancestors\n"
             "  -g, --show-pgids    show process group ids; implies -c\n"
             "  -G, --vt100         use VT100 line drawing characters\n"
             "  -l, --long          don't truncate long lines\n"
             "  -n, --numeric-sort  sort output by PID\n"
             "  -p, --show-pids     show PIDs; implies -c\n"
             "  -s, --show-parents  show parents of the selected process\n"
             "  -u, --uid-changes   show uid transitions\n"
             "  -U, --unicode       use UTF-8 (Unicode) line drawing characters\n"
             "  -V, --version       display version information\n"));
#ifdef WITH_SELINUX
    fprintf(stderr, "%s", ("  -Z     show         SELinux security contexts\n"));
#endif                                /*WITH_SELINUX */
    fprintf(stderr, "%s", ("  PID    start at this PID; default is 1 (init)\n"
                      "  USER   show only trees rooted at processes of this user\n\n"));
    exit(1);
}

void fun_8049f80()
{
 /*8049f80:	53                   	push   %ebx
 8049f81:	8d 64 24 e8          	lea    -0x18(%esp),%esp
 8049f85:	8b 15 90 d1 04 08    	mov    0x804d190,%edx
 8049f8b:	85 d2                	test   %edx,%edx
 8049f8d:	74 59                	je     8049fe8 <tigetstr@plt+0xf98>
 8049f8f:	83 ea 01             	sub    $0x1,%edx
 8049f92:	89 15 90 d1 04 08    	mov    %edx,0x804d190
 8049f98:	8b 15 f4 d0 04 08    	mov    0x804d0f4,%edx
 8049f9e:	85 d2                	test   %edx,%edx
 8049fa0:	74 2e                	je     8049fd0 <tigetstr@plt+0xf80>
 8049fa2:	8b 15 ec d0 04 08    	mov    0x804d0ec,%edx
 8049fa8:	8b 0d f0 d0 04 08    	mov    0x804d0f0,%ecx
 8049fae:	39 ca                	cmp    %ecx,%edx
 8049fb0:	7e 1e                	jle    8049fd0 <tigetstr@plt+0xf80>
 8049fb2:	83 c1 01             	add    $0x1,%ecx
 8049fb5:	39 ca                	cmp    %ecx,%edx
 8049fb7:	75 29                	jne    8049fe2 <tigetstr@plt+0xf92>
 8049fb9:	a1 80 d1 04 08       	mov    0x804d180,%eax
 8049fbe:	c7 04 24 2b 00 00 00 	movl   $0x2b,(%esp)
 8049fc5:	89 44 24 04          	mov    %eax,0x4(%esp)
 8049fc9:	e8 22 ee ff ff       	call   8048df0 <_IO_putc@plt>
 8049fce:	eb 12                	jmp    8049fe2 <tigetstr@plt+0xf92>
 8049fd0:	8b 15 80 d1 04 08    	mov    0x804d180,%edx
 8049fd6:	89 04 24             	mov    %eax,(%esp)
 8049fd9:	89 54 24 04          	mov    %edx,0x4(%esp)
 8049fdd:	e8 0e ee ff ff       	call   8048df0 <_IO_putc@plt>
 8049fe2:	8d 64 24 18          	lea    0x18(%esp),%esp
 8049fe6:	5b                   	pop    %ebx
 8049fe7:	c3                   	ret   */
}

 /*8049fe8:	31 d2                	xor    %edx,%edx
 8049fea:	84 c0                	test   %al,%al
 8049fec:	78 0a                	js     8049ff8 <tigetstr@plt+0xfa8>
 8049fee:	83 05 ec d0 04 08 01 	addl   $0x1,0x804d0ec
 8049ff5:	eb 9b                	jmp    8049f92 <tigetstr@plt+0xf42>
 8049ff7:	90                   	nop
 8049ff8:	0f be c8             	movsbl %al,%ecx
 8049ffb:	b2 01                	mov    $0x1,%dl
 8049ffd:	89 cb                	mov    %ecx,%ebx
 8049fff:	81 e3 e0 00 00 00    	and    $0xe0,%ebx
 804a005:	81 fb c0 00 00 00    	cmp    $0xc0,%ebx
 804a00b:	74 e1                	je     8049fee <tigetstr@plt+0xf9e>
 804a00d:	89 cb                	mov    %ecx,%ebx
 804a00f:	b2 02                	mov    $0x2,%dl
 804a011:	81 e3 f0 00 00 00    	and    $0xf0,%ebx
 804a017:	81 fb e0 00 00 00    	cmp    $0xe0,%ebx
 804a01d:	74 cf                	je     8049fee <tigetstr@plt+0xf9e>
 804a01f:	81 e1 f8 00 00 00    	and    $0xf8,%ecx
 804a025:	31 d2                	xor    %edx,%edx
 804a027:	81 f9 f0 00 00 00    	cmp    $0xf0,%ecx
 804a02d:	0f 94 c2             	sete   %dl
 804a030:	8d 14 52             	lea    (%edx,%edx,2),%edx
 804a033:	eb b9                	jmp    8049fee <tigetstr@plt+0xf9e>
 804a035:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 804a039:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi
 804a040:	55                   	push   %ebp
 804a041:	57                   	push   %edi
 804a042:	56                   	push   %esi
 804a043:	89 c6                	mov    %eax,%esi
 804a045:	53                   	push   %ebx
 804a046:	8d 64 24 f4          	lea    -0xc(%esp),%esp
 804a04a:	85 c0                	test   %eax,%eax
 804a04c:	0f 84 88 00 00 00    	je     804a0da <tigetstr@plt+0x108a>
 804a052:	b9 01 00 00 00       	mov    $0x1,%ecx
 804a057:	31 ff                	xor    %edi,%edi
 804a059:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804a060:	89 f2                	mov    %esi,%edx
 804a062:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
 804a065:	c1 fa 1f             	sar    $0x1f,%edx
 804a068:	01 c9                	add    %ecx,%ecx
 804a06a:	89 f0                	mov    %esi,%eax
 804a06c:	83 c7 01             	add    $0x1,%edi
 804a06f:	f7 f9                	idiv   %ecx
 804a071:	85 c0                	test   %eax,%eax
 804a073:	75 eb                	jne    804a060 <tigetstr@plt+0x1010>
 804a075:	bb 67 66 66 66       	mov    $0x66666667,%ebx
 804a07a:	89 c8                	mov    %ecx,%eax
 804a07c:	f7 eb                	imul   %ebx
 804a07e:	c1 fa 02             	sar    $0x2,%edx
 804a081:	c1 f9 1f             	sar    $0x1f,%ecx
 804a084:	89 d3                	mov    %edx,%ebx
 804a086:	29 cb                	sub    %ecx,%ebx
 804a088:	74 45                	je     804a0cf <tigetstr@plt+0x107f>
 804a08a:	bd 67 66 66 66       	mov    $0x66666667,%ebp
 804a08f:	90                   	nop
 804a090:	89 f2                	mov    %esi,%edx
 804a092:	89 f0                	mov    %esi,%eax
 804a094:	c1 fa 1f             	sar    $0x1f,%edx
 804a097:	f7 fb                	idiv   %ebx
 804a099:	89 c1                	mov    %eax,%ecx
 804a09b:	f7 ed                	imul   %ebp
 804a09d:	89 c8                	mov    %ecx,%eax
 804a09f:	c1 f8 1f             	sar    $0x1f,%eax
 804a0a2:	c1 fa 02             	sar    $0x2,%edx
 804a0a5:	29 c2                	sub    %eax,%edx
 804a0a7:	89 d0                	mov    %edx,%eax
 804a0a9:	c1 e0 02             	shl    $0x2,%eax
 804a0ac:	01 d0                	add    %edx,%eax
 804a0ae:	01 c0                	add    %eax,%eax
 804a0b0:	29 c1                	sub    %eax,%ecx
 804a0b2:	89 c8                	mov    %ecx,%eax
 804a0b4:	83 c0 30             	add    $0x30,%eax
 804a0b7:	0f b6 c0             	movzbl %al,%eax
 804a0ba:	e8 c1 fe ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a0bf:	89 d8                	mov    %ebx,%eax
 804a0c1:	f7 ed                	imul   %ebp
 804a0c3:	c1 fb 1f             	sar    $0x1f,%ebx
 804a0c6:	c1 fa 02             	sar    $0x2,%edx
 804a0c9:	29 da                	sub    %ebx,%edx
 804a0cb:	89 d3                	mov    %edx,%ebx
 804a0cd:	75 c1                	jne    804a090 <tigetstr@plt+0x1040>
 804a0cf:	8d 64 24 0c          	lea    0xc(%esp),%esp
 804a0d3:	89 f8                	mov    %edi,%eax
 804a0d5:	5b                   	pop    %ebx
 804a0d6:	5e                   	pop    %esi
 804a0d7:	5f                   	pop    %edi
 804a0d8:	5d                   	pop    %ebp
 804a0d9:	c3                   	ret    
 804a0da:	bf 01 00 00 00       	mov    $0x1,%edi
 804a0df:	eb ee                	jmp    804a0cf <tigetstr@plt+0x107f>
 804a0e1:	eb 0d                	jmp    804a0f0 <tigetstr@plt+0x10a0>
 804a0e3:	90                   	nop
 804a0e4:	90                   	nop
 804a0e5:	90                   	nop
 804a0e6:	90                   	nop
 804a0e7:	90                   	nop
 804a0e8:	90                   	nop
 804a0e9:	90                   	nop
 804a0ea:	90                   	nop
 804a0eb:	90                   	nop
 804a0ec:	90                   	nop
 804a0ed:	90                   	nop
 804a0ee:	90                   	nop
 804a0ef:	90                   	nop*/

 void fun_804a0f0()
 {
 /*804a0f0:	55                   	push   %ebp
 804a0f1:	57                   	push   %edi
 804a0f2:	56                   	push   %esi
 804a0f3:	31 f6                	xor    %esi,%esi
 804a0f5:	53                   	push   %ebx
 804a0f6:	8d 18                	lea    (%eax),%ebx
 804a0f8:	8d 64 24 c4          	lea    -0x3c(%esp),%esp
 804a0fc:	65 a1 14 00 00 00    	mov    %gs:0x14,%eax
 804a102:	89 44 24 2c          	mov    %eax,0x2c(%esp)
 804a106:	31 c0                	xor    %eax,%eax
 804a108:	0f b6 13             	movzbl (%ebx),%edx
 804a10b:	84 d2                	test   %dl,%dl
 804a10d:	74 7e                	je     804a18d <tigetstr@plt+0x113d>
 804a10f:	8d 7c 24 27          	lea    0x27(%esp),%edi
 804a113:	eb 19                	jmp    804a12e <tigetstr@plt+0x10de>
 804a115:	8d 76 00             	lea    0x0(%esi),%esi
 804a118:	0f be c2             	movsbl %dl,%eax
 804a11b:	83 c6 01             	add    $0x1,%esi
 804a11e:	e8 5d fe ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a123:	0f b6 53 01          	movzbl 0x1(%ebx),%edx
 804a127:	8d 5b 01             	lea    0x1(%ebx),%ebx
 804a12a:	84 d2                	test   %dl,%dl
 804a12c:	74 5f                	je     804a18d <tigetstr@plt+0x113d>
 804a12e:	80 fa 5c             	cmp    $0x5c,%dl
 804a131:	74 75                	je     804a1a8 <tigetstr@plt+0x1158>
 804a133:	8d 42 e0             	lea    -0x20(%edx),%eax
 804a136:	3c 5e                	cmp    $0x5e,%al
 804a138:	76 de                	jbe    804a118 <tigetstr@plt+0x10c8>
 804a13a:	89 54 24 10          	mov    %edx,0x10(%esp)
 804a13e:	c7 44 24 0c 6b b7 04 	movl   $0x804b76b,0xc(%esp)	// d
 804a145:	08 
 804a146:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 804a14d:	00 
 804a14e:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 804a155:	00 
 804a156:	89 3c 24             	mov    %edi,(%esp)
 804a159:	89 fd                	mov    %edi,%ebp
 804a15b:	e8 e0 ee ff ff       	call   8049040 <__sprintf_chk@plt>
 804a160:	0f be 44 24 27       	movsbl 0x27(%esp),%eax
 804a165:	84 c0                	test   %al,%al
 804a167:	74 17                	je     804a180 <tigetstr@plt+0x1130>
 804a169:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804a170:	8d 6d 01             	lea    0x1(%ebp),%ebp
 804a173:	e8 08 fe ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a178:	0f be 45 00          	movsbl 0x0(%ebp),%eax
 804a17c:	84 c0                	test   %al,%al
 804a17e:	75 f0                	jne    804a170 <tigetstr@plt+0x1120>
 804a180:	8d 5b 01             	lea    0x1(%ebx),%ebx
 804a183:	83 c6 04             	add    $0x4,%esi
 804a186:	0f b6 13             	movzbl (%ebx),%edx
 804a189:	84 d2                	test   %dl,%dl
 804a18b:	75 a1                	jne    804a12e <tigetstr@plt+0x10de>
 804a18d:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
 804a191:	65 33 0d 14 00 00 00 	xor    %gs:0x14,%ecx
 804a198:	89 f0                	mov    %esi,%eax
 804a19a:	75 2f                	jne    804a1cb <tigetstr@plt+0x117b>
 804a19c:	8d 64 24 3c          	lea    0x3c(%esp),%esp
 804a1a0:	5b                   	pop    %ebx
 804a1a1:	5e                   	pop    %esi
 804a1a2:	5f                   	pop    %edi
 804a1a3:	5d                   	pop    %ebp
 804a1a4:	c3                   	ret*/    
 }

 /*804a1a5:	8d 76 00             	lea    0x0(%esi),%esi
 804a1a8:	bd 68 b7 04 08       	mov    $0x804b768,%ebp	// d
 804a1ad:	8d 76 00             	lea    0x0(%esi),%esi
 804a1b0:	0f be c2             	movsbl %dl,%eax
 804a1b3:	8d 6d 01             	lea    0x1(%ebp),%ebp
 804a1b6:	e8 c5 fd ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a1bb:	0f b6 55 00          	movzbl 0x0(%ebp),%edx
 804a1bf:	84 d2                	test   %dl,%dl
 804a1c1:	75 ed                	jne    804a1b0 <tigetstr@plt+0x1160>
 804a1c3:	83 c6 02             	add    $0x2,%esi
 804a1c6:	e9 58 ff ff ff       	jmp    804a123 <tigetstr@plt+0x10d3>
 804a1cb:	e8 f0 eb ff ff       	call   8048dc0 <__stack_chk_fail@plt>
 804a1d0:	8d 64 24 e4          	lea    -0x1c(%esp),%esp
 804a1d4:	0f be 05 98 d1 04 08 	movsbl 0x804d198,%eax
 804a1db:	84 c0                	test   %al,%al
 804a1dd:	74 0e                	je     804a1ed <tigetstr@plt+0x119d>
 804a1df:	8b 0d f0 d0 04 08    	mov    0x804d0f0,%ecx
 804a1e5:	39 0d ec d0 04 08    	cmp    %ecx,0x804d0ec
 804a1eb:	74 2b                	je     804a218 <tigetstr@plt+0x11c8>
 804a1ed:	a1 80 d1 04 08       	mov    0x804d180,%eax
 804a1f2:	c7 04 24 0a 00 00 00 	movl   $0xa,(%esp)
 804a1f9:	89 44 24 04          	mov    %eax,0x4(%esp)
 804a1fd:	c6 05 98 d1 04 08 00 	movb   $0x0,0x804d198
 804a204:	e8 e7 eb ff ff       	call   8048df0 <_IO_putc@plt>
 804a209:	c7 05 ec d0 04 08 01 	movl   $0x1,0x804d0ec
 804a210:	00 00 00 
 804a213:	8d 64 24 1c          	lea    0x1c(%esp),%esp
 804a217:	c3                   	ret    
 804a218:	8b 15 80 d1 04 08    	mov    0x804d180,%edx
 804a21e:	89 04 24             	mov    %eax,(%esp)
 804a221:	89 54 24 04          	mov    %edx,0x4(%esp)
 804a225:	e8 c6 eb ff ff       	call   8048df0 <_IO_putc@plt>
 804a22a:	eb c1                	jmp    804a1ed <tigetstr@plt+0x119d>
 804a22c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi */

 void fun_804a230()
 {
 /*804a230:	57                   	push   %edi
 804a231:	89 d7                	mov    %edx,%edi
 804a233:	56                   	push   %esi
 804a234:	53                   	push   %ebx
 804a235:	89 c3                	mov    %eax,%ebx
 804a237:	8d 64 24 f0          	lea    -0x10(%esp),%esp
 804a23b:	89 54 24 04          	mov    %edx,0x4(%esp)
 804a23f:	89 04 24             	mov    %eax,(%esp)
 804a242:	e8 c9 ea ff ff       	call   8048d10 <strcmp@plt>
 804a247:	85 c0                	test   %eax,%eax
 804a249:	75 55                	jne    804a2a0 <tigetstr@plt+0x1250>
 804a24b:	8b 15 b4 d1 04 08    	mov    0x804d1b4,%edx
 804a251:	85 d2                	test   %edx,%edx
 804a253:	75 3b                	jne    804a290 <tigetstr@plt+0x1240>
 804a255:	8b 73 30             	mov    0x30(%ebx),%esi
 804a258:	8b 5f 30             	mov    0x30(%edi),%ebx
 804a25b:	85 f6                	test   %esi,%esi
 804a25d:	74 51                	je     804a2b0 <tigetstr@plt+0x1260>
 804a25f:	85 db                	test   %ebx,%ebx
 804a261:	75 13                	jne    804a276 <tigetstr@plt+0x1226>
 804a263:	eb 4b                	jmp    804a2b0 <tigetstr@plt+0x1260>
 804a265:	8d 76 00             	lea    0x0(%esi),%esi
 804a268:	8b 5b 04             	mov    0x4(%ebx),%ebx
 804a26b:	8b 76 04             	mov    0x4(%esi),%esi
 804a26e:	85 db                	test   %ebx,%ebx
 804a270:	74 3e                	je     804a2b0 <tigetstr@plt+0x1260>
 804a272:	85 f6                	test   %esi,%esi
 804a274:	74 3a                	je     804a2b0 <tigetstr@plt+0x1260>
 804a276:	8b 13                	mov    (%ebx),%edx
 804a278:	8b 06                	mov    (%esi),%eax
 804a27a:	e8 b1 ff ff ff       	call   804a230 <tigetstr@plt+0x11e0>
 804a27f:	85 c0                	test   %eax,%eax
 804a281:	75 e5                	jne    804a268 <tigetstr@plt+0x1218>
 804a283:	8d 64 24 10          	lea    0x10(%esp),%esp
 804a287:	5b                   	pop    %ebx
 804a288:	5e                   	pop    %esi
 804a289:	5f                   	pop    %edi
 804a28a:	c3                   	ret    */
 }

 /*804a28b:	90                   	nop
 804a28c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 804a290:	8b 4f 24             	mov    0x24(%edi),%ecx
 804a293:	39 4b 24             	cmp    %ecx,0x24(%ebx)
 804a296:	74 bd                	je     804a255 <tigetstr@plt+0x1205>
 804a298:	8d 64 24 10          	lea    0x10(%esp),%esp
 804a29c:	5b                   	pop    %ebx
 804a29d:	5e                   	pop    %esi
 804a29e:	5f                   	pop    %edi
 804a29f:	c3                   	ret    
 804a2a0:	8d 64 24 10          	lea    0x10(%esp),%esp
 804a2a4:	31 c0                	xor    %eax,%eax
 804a2a6:	5b                   	pop    %ebx
 804a2a7:	5e                   	pop    %esi
 804a2a8:	5f                   	pop    %edi
 804a2a9:	c3                   	ret    
 804a2aa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
 804a2b0:	85 db                	test   %ebx,%ebx
 804a2b2:	0f 94 c2             	sete   %dl
 804a2b5:	31 c0                	xor    %eax,%eax
 804a2b7:	85 f6                	test   %esi,%esi
 804a2b9:	0f 94 c0             	sete   %al
 804a2bc:	8d 64 24 10          	lea    0x10(%esp),%esp
 804a2c0:	5b                   	pop    %ebx
 804a2c1:	21 d0                	and    %edx,%eax
 804a2c3:	5e                   	pop    %esi
 804a2c4:	5f                   	pop    %edi
 804a2c5:	c3                   	ret    
 804a2c6:	8d 76 00             	lea    0x0(%esi),%esi
 804a2c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi
 804a2d0:	55                   	push   %ebp
 804a2d1:	57                   	push   %edi
 804a2d2:	56                   	push   %esi
 804a2d3:	53                   	push   %ebx
 804a2d4:	8d 64 24 c4          	lea    -0x3c(%esp),%esp
 804a2d8:	89 4c 24 14          	mov    %ecx,0x14(%esp)
 804a2dc:	8b 4c 24 54          	mov    0x54(%esp),%ecx
 804a2e0:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
 804a2e4:	8b 4c 24 58          	mov    0x58(%esp),%ecx
 804a2e8:	89 4c 24 28          	mov    %ecx,0x28(%esp)  // (esp+0x28)=char * var_0x28
 804a2ec:	8b 4c 24 5c          	mov    0x5c(%esp),%ecx
 804a2f0:	85 c9                	test   %ecx,%ecx
 804a2f2:	89 44 24 18          	mov    %eax,0x18(%esp)
 804a2f6:	89 54 24 10          	mov    %edx,0x10(%esp)
 804a2fa:	8b 44 24 50          	mov    0x50(%esp),%eax
 804a2fe:	89 4c 24 20          	mov    %ecx,0x20(%esp)
 804a302:	0f 88 47 08 00 00    	js     804ab4f <tigetstr@plt+0x1aff>
 804a308:	8b 4c 24 18          	mov    0x18(%esp),%ecx
 804a30c:	85 c9                	test   %ecx,%ecx
 804a30e:	0f 84 db 05 00 00    	je     804a8ef <tigetstr@plt+0x189f>
 804a314:	85 c0                	test   %eax,%eax
 804a316:	0f 85 84 00 00 00    	jne    804a3a0 <tigetstr@plt+0x1350>
 804a31c:	8b 44 24 10          	mov    0x10(%esp),%eax
 804a320:	85 c0                	test   %eax,%eax
 804a322:	7e 7c                	jle    804a3a0 <tigetstr@plt+0x1350>
 804a324:	89 c5                	mov    %eax,%ebp
 804a326:	31 f6                	xor    %esi,%esi
 804a328:	83 ed 01             	sub    $0x1,%ebp
 804a32b:	90                   	nop
 804a32c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 804a330:	a1 c0 d1 04 08       	mov    0x804d1c0,%eax
 804a335:	89 f7                	mov    %esi,%edi
 804a337:	c1 e7 02             	shl    $0x2,%edi
 804a33a:	8b 1c b0             	mov    (%eax,%esi,4),%ebx
 804a33d:	83 c3 01             	add    $0x1,%ebx
 804a340:	74 1d                	je     804a35f <tigetstr@plt+0x130f>
 804a342:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804a349:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi
 804a350:	b8 20 00 00 00       	mov    $0x20,%eax
 804a355:	e8 26 fc ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a35a:	83 eb 01             	sub    $0x1,%ebx
 804a35d:	75 f1                	jne    804a350 <tigetstr@plt+0x1300>
 804a35f:	39 ee                	cmp    %ebp,%esi
 804a361:	0f 84 0c 08 00 00    	je     804ab73 <tigetstr@plt+0x1b23>
 804a367:	a1 bc d1 04 08       	mov    0x804d1bc,%eax
 804a36c:	8b 44 38 04          	mov    0x4(%eax,%edi,1),%eax
 804a370:	85 c0                	test   %eax,%eax
 804a372:	a1 fc d0 04 08       	mov    0x804d0fc,%eax
 804a377:	0f 84 e3 05 00 00    	je     804a960 <tigetstr@plt+0x1910>
 804a37d:	8b 58 08             	mov    0x8(%eax),%ebx
 804a380:	eb 0e                	jmp    804a390 <tigetstr@plt+0x1340>
 804a382:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
 804a388:	8d 5b 01             	lea    0x1(%ebx),%ebx
 804a38b:	e8 f0 fb ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a390:	0f be 03             	movsbl (%ebx),%eax
 804a393:	84 c0                	test   %al,%al
 804a395:	75 f1                	jne    804a388 <tigetstr@plt+0x1338>
 804a397:	83 c6 01             	add    $0x1,%esi
 804a39a:	3b 74 24 10          	cmp    0x10(%esp),%esi
 804a39e:	75 90                	jne    804a330 <tigetstr@plt+0x12e0>
 804a3a0:	83 7c 24 14 01       	cmpl   $0x1,0x14(%esp)
 804a3a5:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
 804a3ac:	00 
 804a3ad:	7e 30                	jle    804a3df <tigetstr@plt+0x138f>
 804a3af:	8b 44 24 14          	mov    0x14(%esp),%eax
 804a3b3:	bb 71 b7 04 08       	mov    $0x804b771,%ebx
 804a3b8:	e8 83 fc ff ff       	call   804a040 <tigetstr@plt+0xff0>
 804a3bd:	83 c0 02             	add    $0x2,%eax
 804a3c0:	89 44 24 24          	mov    %eax,0x24(%esp)
 804a3c4:	b8 2a 00 00 00       	mov    $0x2a,%eax
 804a3c9:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804a3d0:	8d 5b 01             	lea    0x1(%ebx),%ebx
 804a3d3:	e8 a8 fb ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a3d8:	0f be 03             	movsbl (%ebx),%eax
 804a3db:	84 c0                	test   %al,%al
 804a3dd:	75 f1                	jne    804a3d0 <tigetstr@plt+0x1380>
 804a3df:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a3e3:	f6 40 2c 01          	testb  $0x1,0x2c(%eax)
 804a3e7:	0f 85 6d 06 00 00    	jne    804aa5a <tigetstr@plt+0x1a0a>
 804a3ed:	8b 2d b8 d1 04 08    	mov    0x804d1b8,%ebp					// g_0x804d1b8
 804a3f3:	85 ed                	test   %ebp,%ebp
 804a3f5:	74 0f                	je     804a406 <tigetstr@plt+0x13b6>
 804a3f7:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a3fb:	8b 40 18             	mov    0x18(%eax),%eax
 804a3fe:	85 c0                	test   %eax,%eax
 804a400:	0f 88 d0 06 00 00    	js     804aad6 <tigetstr@plt+0x1a86>
 804a406:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a40a:	89 ee                	mov    %ebp,%esi
 804a40c:	e8 df fc ff ff       	call   804a0f0 <tigetstr@plt+0x10a0>
 804a411:	89 44 24 14          	mov    %eax,0x14(%esp)
 804a415:	a1 ec d0 04 08       	mov    0x804d0ec,%eax
 804a41a:	89 44 24 2c          	mov    %eax,0x2c(%esp)
 804a41e:	a1 b0 d1 04 08       	mov    0x804d1b0,%eax
 804a423:	85 c0                	test   %eax,%eax
 804a425:	74 1f                	je     804a446 <tigetstr@plt+0x13f6>
 804a427:	83 fd 01             	cmp    $0x1,%ebp
 804a42a:	8d 75 01             	lea    0x1(%ebp),%esi
 804a42d:	19 c0                	sbb    %eax,%eax
 804a42f:	83 e0 fc             	and    $0xfffffffc,%eax
 804a432:	83 c0 2c             	add    $0x2c,%eax
 804a435:	e8 46 fb ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a43a:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a43e:	8b 40 1c             	mov    0x1c(%eax),%eax
 804a441:	e8 fa fb ff ff       	call   804a040 <tigetstr@plt+0xff0>
 804a446:	a1 ac d1 04 08       	mov    0x804d1ac,%eax
 804a44b:	85 c0                	test   %eax,%eax
 804a44d:	74 21                	je     804a470 <tigetstr@plt+0x1420>
 804a44f:	83 fe 01             	cmp    $0x1,%esi
 804a452:	8d 5e 01             	lea    0x1(%esi),%ebx
 804a455:	89 de                	mov    %ebx,%esi
 804a457:	19 c0                	sbb    %eax,%eax
 804a459:	83 e0 fc             	and    $0xfffffffc,%eax
 804a45c:	83 c0 2c             	add    $0x2c,%eax
 804a45f:	e8 1c fb ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a464:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a468:	8b 40 20             	mov    0x20(%eax),%eax
 804a46b:	e8 d0 fb ff ff       	call   804a040 <tigetstr@plt+0xff0>
 804a470:	a1 b4 d1 04 08       	mov    0x804d1b4,%eax
 804a475:	85 c0                	test   %eax,%eax
 804a477:	74 58                	je     804a4d1 <tigetstr@plt+0x1481>
 804a479:	8b 7c 24 18          	mov    0x18(%esp),%edi
 804a47d:	8b 4c 24 28          	mov    0x28(%esp),%ecx      // (esp+0x28)=char * var_0x28
 804a481:	39 4f 24             	cmp    %ecx,0x24(%edi)
 804a484:	74 4b                	je     804a4d1 <tigetstr@plt+0x1481>
 804a486:	83 fe 01             	cmp    $0x1,%esi
 804a489:	8d 5e 01             	lea    0x1(%esi),%ebx
 804a48c:	19 c0                	sbb    %eax,%eax
 804a48e:	83 e0 fc             	and    $0xfffffffc,%eax
 804a491:	83 c0 2c             	add    $0x2c,%eax
 804a494:	e8 e7 fa ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a499:	8b 47 24             	mov    0x24(%edi),%eax
 804a49c:	89 04 24             	mov    %eax,(%esp)
 804a49f:	e8 ac e8 ff ff       	call   8048d50 <getpwuid@plt>
 804a4a4:	85 c0                	test   %eax,%eax
 804a4a6:	0f 84 90 06 00 00    	je     804ab3c <tigetstr@plt+0x1aec>
 804a4ac:	8b 30                	mov    (%eax),%esi
 804a4ae:	0f be 06             	movsbl (%esi),%eax
 804a4b1:	84 c0                	test   %al,%al
 804a4b3:	74 1a                	je     804a4cf <tigetstr@plt+0x147f>
 804a4b5:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 804a4b9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi
 804a4c0:	8d 76 01             	lea    0x1(%esi),%esi
 804a4c3:	e8 b8 fa ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a4c8:	0f be 06             	movsbl (%esi),%eax
 804a4cb:	84 c0                	test   %al,%al
 804a4cd:	75 f1                	jne    804a4c0 <tigetstr@plt+0x1470>
 804a4cf:	89 de                	mov    %ebx,%esi
 804a4d1:	a1 9c d1 04 08       	mov    0x804d19c,%eax
 804a4d6:	85 c0                	test   %eax,%eax
 804a4d8:	74 51                	je     804a52b <tigetstr@plt+0x14db>
 804a4da:	83 fe 01             	cmp    $0x1,%esi
 804a4dd:	8d 5e 01             	lea    0x1(%esi),%ebx
 804a4e0:	19 c0                	sbb    %eax,%eax
 804a4e2:	83 e0 fc             	and    $0xfffffffc,%eax
 804a4e5:	83 c0 2c             	add    $0x2c,%eax
 804a4e8:	e8 93 fa ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a4ed:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a4f1:	8b 70 28             	mov    0x28(%eax),%esi
 804a4f4:	b8 60 00 00 00       	mov    $0x60,%eax
 804a4f9:	e8 82 fa ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a4fe:	0f be 06             	movsbl (%esi),%eax
 804a501:	84 c0                	test   %al,%al
 804a503:	74 1a                	je     804a51f <tigetstr@plt+0x14cf>
 804a505:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 804a509:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi
 804a510:	8d 76 01             	lea    0x1(%esi),%esi
 804a513:	e8 68 fa ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a518:	0f be 06             	movsbl (%esi),%eax
 804a51b:	84 c0                	test   %al,%al
 804a51d:	75 f1                	jne    804a510 <tigetstr@plt+0x14c0>
 804a51f:	b8 27 00 00 00       	mov    $0x27,%eax
 804a524:	89 de                	mov    %ebx,%esi
 804a526:	e8 55 fa ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a52b:	85 ed                	test   %ebp,%ebp
 804a52d:	0f 85 c5 03 00 00    	jne    804a8f8 <tigetstr@plt+0x18a8>
 804a533:	85 f6                	test   %esi,%esi
 804a535:	74 0a                	je     804a541 <tigetstr@plt+0x14f1>
 804a537:	b8 29 00 00 00       	mov    $0x29,%eax
 804a53c:	e8 3f fa ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a541:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a545:	f6 40 2c 01          	testb  $0x1,0x2c(%eax)
 804a549:	0f 85 d4 03 00 00    	jne    804a923 <tigetstr@plt+0x18d3>
 804a54f:	8b 1d b8 d1 04 08    	mov    0x804d1b8,%ebx					// g_0x804d1b8
 804a555:	85 db                	test   %ebx,%ebx
 804a557:	0f 84 b1 00 00 00    	je     804a60e <tigetstr@plt+0x15be>
 804a55d:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a561:	8b 78 18             	mov    0x18(%eax),%edi
 804a564:	85 ff                	test   %edi,%edi
 804a566:	0f 8e a2 00 00 00    	jle    804a60e <tigetstr@plt+0x15be>
 804a56c:	89 6c 24 28          	mov    %ebp,0x28(%esp)              // (esp+0x28)=char * var_0x28
 804a570:	31 f6                	xor    %esi,%esi
 804a572:	89 c5                	mov    %eax,%ebp
 804a574:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
 804a57a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi
 804a580:	89 f8                	mov    %edi,%eax
 804a582:	83 e8 01             	sub    $0x1,%eax
 804a585:	39 f0                	cmp    %esi,%eax
 804a587:	0f 8f db 03 00 00    	jg     804a968 <tigetstr@plt+0x1918>
 804a58d:	8b 45 14             	mov    0x14(%ebp),%eax
 804a590:	8b 04 b0             	mov    (%eax,%esi,4),%eax
 804a593:	0f b6 10             	movzbl (%eax),%edx
 804a596:	84 d2                	test   %dl,%dl
 804a598:	0f 84 e8 03 00 00    	je     804a986 <tigetstr@plt+0x1936>
 804a59e:	89 c1                	mov    %eax,%ecx
 804a5a0:	31 db                	xor    %ebx,%ebx
 804a5a2:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804a5a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi
 804a5b0:	83 ea 20             	sub    $0x20,%edx
 804a5b3:	8d 49 01             	lea    0x1(%ecx),%ecx
 804a5b6:	80 fa 5f             	cmp    $0x5f,%dl
 804a5b9:	19 d2                	sbb    %edx,%edx
 804a5bb:	83 e2 fd             	and    $0xfffffffd,%edx
 804a5be:	01 d3                	add    %edx,%ebx
 804a5c0:	0f b6 11             	movzbl (%ecx),%edx
 804a5c3:	83 c3 04             	add    $0x4,%ebx
 804a5c6:	84 d2                	test   %dl,%dl
 804a5c8:	75 e6                	jne    804a5b0 <tigetstr@plt+0x1560>
 804a5ca:	83 ef 01             	sub    $0x1,%edi
 804a5cd:	03 1d ec d0 04 08    	add    0x804d0ec,%ebx
 804a5d3:	31 c9                	xor    %ecx,%ecx
 804a5d5:	39 f7                	cmp    %esi,%edi
 804a5d7:	0f 95 c1             	setne  %cl
 804a5da:	8b 15 f0 d0 04 08    	mov    0x804d0f0,%edx
 804a5e0:	c1 e1 02             	shl    $0x2,%ecx
 804a5e3:	29 ca                	sub    %ecx,%edx
 804a5e5:	39 d3                	cmp    %edx,%ebx
 804a5e7:	7e 0e                	jle    804a5f7 <tigetstr@plt+0x15a7>
 804a5e9:	8b 15 f4 d0 04 08    	mov    0x804d0f4,%edx
 804a5ef:	85 d2                	test   %edx,%edx
 804a5f1:	0f 85 0e 05 00 00    	jne    804ab05 <tigetstr@plt+0x1ab5>
 804a5f7:	e8 f4 fa ff ff       	call   804a0f0 <tigetstr@plt+0x10a0>
 804a5fc:	83 c6 01             	add    $0x1,%esi
 804a5ff:	8b 7d 18             	mov    0x18(%ebp),%edi
 804a602:	39 f7                	cmp    %esi,%edi
 804a604:	0f 8f 76 ff ff ff    	jg     804a580 <tigetstr@plt+0x1530>
 804a60a:	8b 6c 24 28          	mov    0x28(%esp),%ebp          // (esp+0x28)=char * var_0x28
 804a60e:	8b 0d 9c d1 04 08    	mov    0x804d19c,%ecx
 804a614:	85 c9                	test   %ecx,%ecx
 804a616:	0f 85 74 03 00 00    	jne    804a990 <tigetstr@plt+0x1940>
 804a61c:	a1 b8 d1 04 08       	mov    0x804d1b8,%eax					// g_0x804d1b8
 804a621:	85 c0                	test   %eax,%eax
 804a623:	0f 85 67 03 00 00    	jne    804a990 <tigetstr@plt+0x1940>
 804a629:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a62d:	8b 78 30             	mov    0x30(%eax),%edi
 804a630:	85 ff                	test   %edi,%edi
 804a632:	0f 84 58 03 00 00    	je     804a990 <tigetstr@plt+0x1940>
 804a638:	a1 c4 d1 04 08       	mov    0x804d1c4,%eax
 804a63d:	39 44 24 10          	cmp    %eax,0x10(%esp)
 804a641:	0f 8c 84 03 00 00    	jl     804a9cb <tigetstr@plt+0x197b>
 804a647:	85 c0                	test   %eax,%eax
 804a649:	0f 85 f6 03 00 00    	jne    804aa45 <tigetstr@plt+0x19f5>
 804a64f:	c7 05 c4 d1 04 08 64 	movl   $0x64,0x804d1c4					// 0x804d1c4=scanf2
 804a656:	00 00 00 
 804a659:	be 90 01 00 00       	mov    $0x190,%esi
 804a65e:	a1 c0 d1 04 08       	mov    0x804d1c0,%eax
 804a663:	89 74 24 04          	mov    %esi,0x4(%esp)
 804a667:	89 04 24             	mov    %eax,(%esp)
 804a66a:	e8 11 e8 ff ff       	call   8048e80 <realloc@plt>
 804a66f:	85 c0                	test   %eax,%eax
 804a671:	89 c3                	mov    %eax,%ebx
 804a673:	a3 c0 d1 04 08       	mov    %eax,0x804d1c0
 804a678:	0f 84 0a 05 00 00    	je     804ab88 <tigetstr@plt+0x1b38>
 804a67e:	a1 bc d1 04 08       	mov    0x804d1bc,%eax
 804a683:	89 74 24 04          	mov    %esi,0x4(%esp)
 804a687:	89 04 24             	mov    %eax,(%esp)
 804a68a:	e8 f1 e7 ff ff       	call   8048e80 <realloc@plt>
 804a68f:	85 c0                	test   %eax,%eax
 804a691:	a3 bc d1 04 08       	mov    %eax,0x804d1bc
 804a696:	0f 84 ec 04 00 00    	je     804ab88 <tigetstr@plt+0x1b38>
 804a69c:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
 804a6a0:	31 d2                	xor    %edx,%edx
 804a6a2:	85 c9                	test   %ecx,%ecx
 804a6a4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
 804a6a8:	8b 35 9c d1 04 08    	mov    0x804d19c,%esi
 804a6ae:	0f 94 c2             	sete   %dl
 804a6b1:	85 f6                	test   %esi,%esi
 804a6b3:	89 14 88             	mov    %edx,(%eax,%ecx,4)
 804a6b6:	0f 85 64 01 00 00    	jne    804a820 <tigetstr@plt+0x17d0>
 804a6bc:	a1 b8 d1 04 08       	mov    0x804d1b8,%eax					// g_0x804d1b8
 804a6c1:	85 c0                	test   %eax,%eax
 804a6c3:	0f 85 57 01 00 00    	jne    804a820 <tigetstr@plt+0x17d0>
 804a6c9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
 804a6cd:	8b 15 ec d0 04 08    	mov    0x804d0ec,%edx
 804a6d3:	8b 44 24 14          	mov    0x14(%esp),%eax
 804a6d7:	01 d0                	add    %edx,%eax
 804a6d9:	2b 44 24 2c          	sub    0x2c(%esp),%eax
 804a6dd:	03 44 24 24          	add    0x24(%esp),%eax
 804a6e1:	3b 15 f0 d0 04 08    	cmp    0x804d0f0,%edx
 804a6e7:	89 04 8b             	mov    %eax,(%ebx,%ecx,4)
 804a6ea:	0f 8d a3 03 00 00    	jge    804aa93 <tigetstr@plt+0x1a43>
 804a6f0:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a6f4:	8b 58 30             	mov    0x30(%eax),%ebx
 804a6f7:	85 db                	test   %ebx,%ebx
 804a6f9:	0f 84 f0 01 00 00    	je     804a8ef <tigetstr@plt+0x189f>
 804a6ff:	8b 44 24 10          	mov    0x10(%esp),%eax
 804a703:	8b 3d f8 d0 04 08    	mov    0x804d0f8,%edi
 804a709:	83 c0 01             	add    $0x1,%eax
 804a70c:	85 ff                	test   %edi,%edi
 804a70e:	89 44 24 1c          	mov    %eax,0x1c(%esp)
 804a712:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
 804a719:	00 
 804a71a:	8b 73 04             	mov    0x4(%ebx),%esi
 804a71d:	0f 84 eb 00 00 00    	je     804a80e <tigetstr@plt+0x17be>
 804a723:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
 804a729:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi
 804a730:	8d 6b 04             	lea    0x4(%ebx),%ebp
 804a733:	89 f7                	mov    %esi,%edi
 804a735:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
 804a73c:	00 
 804a73d:	8d 76 00             	lea    0x0(%esi),%esi
 804a740:	85 ff                	test   %edi,%edi
 804a742:	74 1b                	je     804a75f <tigetstr@plt+0x170f>
 804a744:	8b 17                	mov    (%edi),%edx
 804a746:	8b 03                	mov    (%ebx),%eax
 804a748:	e8 e3 fa ff ff       	call   804a230 <tigetstr@plt+0x11e0>
 804a74d:	85 c0                	test   %eax,%eax
 804a74f:	0f 85 93 03 00 00    	jne    804aae8 <tigetstr@plt+0x1a98>
 804a755:	8d 6f 04             	lea    0x4(%edi),%ebp
 804a758:	8b 7f 04             	mov    0x4(%edi),%edi
 804a75b:	85 ff                	test   %edi,%edi
 804a75d:	75 e5                	jne    804a744 <tigetstr@plt+0x16f4>
 804a75f:	8b 7c 24 10          	mov    0x10(%esp),%edi
 804a763:	31 c0                	xor    %eax,%eax
 804a765:	85 ff                	test   %edi,%edi
 804a767:	0f 95 c0             	setne  %al
 804a76a:	83 c7 01             	add    $0x1,%edi
 804a76d:	89 44 24 10          	mov    %eax,0x10(%esp)
 804a771:	8b 4c 24 14          	mov    0x14(%esp),%ecx
 804a775:	85 c9                	test   %ecx,%ecx
 804a777:	74 37                	je     804a7b0 <tigetstr@plt+0x1760>
 804a779:	85 f6                	test   %esi,%esi
 804a77b:	a1 fc d0 04 08       	mov    0x804d0fc,%eax
 804a780:	0f 84 ae 03 00 00    	je     804ab34 <tigetstr@plt+0x1ae4>
 804a786:	8b 68 14             	mov    0x14(%eax),%ebp
 804a789:	0f be 45 00          	movsbl 0x0(%ebp),%eax
 804a78d:	84 c0                	test   %al,%al
 804a78f:	74 1f                	je     804a7b0 <tigetstr@plt+0x1760>
 804a791:	eb 0d                	jmp    804a7a0 <tigetstr@plt+0x1750>
 804a793:	90                   	nop
 804a794:	90                   	nop
 804a795:	90                   	nop
 804a796:	90                   	nop
 804a797:	90                   	nop
 804a798:	90                   	nop
 804a799:	90                   	nop
 804a79a:	90                   	nop
 804a79b:	90                   	nop
 804a79c:	90                   	nop
 804a79d:	90                   	nop
 804a79e:	90                   	nop
 804a79f:	90                   	nop
 804a7a0:	8d 6d 01             	lea    0x1(%ebp),%ebp
 804a7a3:	e8 d8 f7 ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a7a8:	0f be 45 00          	movsbl 0x0(%ebp),%eax
 804a7ac:	84 c0                	test   %al,%al
 804a7ae:	75 f0                	jne    804a7a0 <tigetstr@plt+0x1750>
 804a7b0:	8b 4c 24 18          	mov    0x18(%esp),%ecx
 804a7b4:	8b 6c 24 10          	mov    0x10(%esp),%ebp
 804a7b8:	03 6c 24 20          	add    0x20(%esp),%ebp
 804a7bc:	8b 54 24 1c          	mov    0x1c(%esp),%edx
 804a7c0:	89 6c 24 0c          	mov    %ebp,0xc(%esp)
 804a7c4:	8b 41 24             	mov    0x24(%ecx),%eax
 804a7c7:	89 44 24 08          	mov    %eax,0x8(%esp)
 804a7cb:	31 c0                	xor    %eax,%eax
 804a7cd:	85 f6                	test   %esi,%esi
 804a7cf:	0f 94 c0             	sete   %al
 804a7d2:	89 44 24 04          	mov    %eax,0x4(%esp)
 804a7d6:	39 59 30             	cmp    %ebx,0x30(%ecx)
 804a7d9:	0f 94 c0             	sete   %al
 804a7dc:	89 f9                	mov    %edi,%ecx
 804a7de:	0f b6 c0             	movzbl %al,%eax
 804a7e1:	89 04 24             	mov    %eax,(%esp)
 804a7e4:	8b 03                	mov    (%ebx),%eax
 804a7e6:	e8 e5 fa ff ff       	call   804a2d0 <tigetstr@plt+0x1280>
 804a7eb:	85 f6                	test   %esi,%esi
 804a7ed:	0f 84 fc 00 00 00    	je     804a8ef <tigetstr@plt+0x189f>
 804a7f3:	8d 1e                	lea    (%esi),%ebx
 804a7f5:	8b 3d f8 d0 04 08    	mov    0x804d0f8,%edi
 804a7fb:	85 ff                	test   %edi,%edi
 804a7fd:	c7 44 24 14 00 00 00 	movl   $0x0,0x14(%esp)
 804a804:	00 
 804a805:	8b 73 04             	mov    0x4(%ebx),%esi
 804a808:	0f 85 22 ff ff ff    	jne    804a730 <tigetstr@plt+0x16e0>
 804a80e:	bf 01 00 00 00       	mov    $0x1,%edi
 804a813:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
 804a81a:	00 
 804a81b:	e9 51 ff ff ff       	jmp    804a771 <tigetstr@plt+0x1721>
 804a820:	31 c0                	xor    %eax,%eax
 804a822:	8b 4c 24 18          	mov    0x18(%esp),%ecx
 804a826:	83 7c 24 14 01       	cmpl   $0x1,0x14(%esp)
 804a82b:	0f 9e c0             	setle  %al
 804a82e:	29 c5                	sub    %eax,%ebp
 804a830:	8b 44 24 10          	mov    0x10(%esp),%eax
 804a834:	8b 79 30             	mov    0x30(%ecx),%edi
 804a837:	85 ff                	test   %edi,%edi
 804a839:	89 2c 83             	mov    %ebp,(%ebx,%eax,4)
 804a83c:	0f 84 ad 00 00 00    	je     804a8ef <tigetstr@plt+0x189f>
 804a842:	83 c0 01             	add    $0x1,%eax
 804a845:	89 44 24 1c          	mov    %eax,0x1c(%esp)
 804a849:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804a850:	a1 f8 d0 04 08       	mov    0x804d0f8,%eax
 804a855:	8b 77 04             	mov    0x4(%edi),%esi
 804a858:	85 c0                	test   %eax,%eax
 804a85a:	8b 1f                	mov    (%edi),%ebx
 804a85c:	0f 84 9e 01 00 00    	je     804aa00 <tigetstr@plt+0x19b0>
 804a862:	f6 43 2c 02          	testb  $0x2,0x2c(%ebx)
 804a866:	0f 84 94 01 00 00    	je     804aa00 <tigetstr@plt+0x19b0>
 804a86c:	8d 47 04             	lea    0x4(%edi),%eax
 804a86f:	89 f5                	mov    %esi,%ebp
 804a871:	89 44 24 10          	mov    %eax,0x10(%esp)
 804a875:	c7 44 24 14 00 00 00 	movl   $0x0,0x14(%esp)
 804a87c:	00 
 804a87d:	8d 76 00             	lea    0x0(%esi),%esi
 804a880:	85 ed                	test   %ebp,%ebp
 804a882:	74 20                	je     804a8a4 <tigetstr@plt+0x1854>
 804a884:	8b 55 00             	mov    0x0(%ebp),%edx
 804a887:	89 d8                	mov    %ebx,%eax
 804a889:	e8 a2 f9 ff ff       	call   804a230 <tigetstr@plt+0x11e0>
 804a88e:	85 c0                	test   %eax,%eax
 804a890:	0f 85 4a 01 00 00    	jne    804a9e0 <tigetstr@plt+0x1990>
 804a896:	8d 45 04             	lea    0x4(%ebp),%eax
 804a899:	8b 6d 04             	mov    0x4(%ebp),%ebp
 804a89c:	85 ed                	test   %ebp,%ebp
 804a89e:	89 44 24 10          	mov    %eax,0x10(%esp)
 804a8a2:	75 e0                	jne    804a884 <tigetstr@plt+0x1834>
 804a8a4:	8b 4c 24 14          	mov    0x14(%esp),%ecx
 804a8a8:	8b 7c 24 20          	mov    0x20(%esp),%edi
 804a8ac:	83 f9 01             	cmp    $0x1,%ecx
 804a8af:	8b 54 24 1c          	mov    0x1c(%esp),%edx
 804a8b3:	19 c0                	sbb    %eax,%eax
 804a8b5:	83 c1 01             	add    $0x1,%ecx
 804a8b8:	01 f8                	add    %edi,%eax
 804a8ba:	89 f7                	mov    %esi,%edi
 804a8bc:	83 c0 02             	add    $0x2,%eax
 804a8bf:	89 44 24 0c          	mov    %eax,0xc(%esp)
 804a8c3:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a8c7:	8b 40 24             	mov    0x24(%eax),%eax
 804a8ca:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 804a8d1:	89 44 24 08          	mov    %eax,0x8(%esp)
 804a8d5:	31 c0                	xor    %eax,%eax
 804a8d7:	85 f6                	test   %esi,%esi
 804a8d9:	0f 94 c0             	sete   %al
 804a8dc:	89 44 24 04          	mov    %eax,0x4(%esp)
 804a8e0:	89 d8                	mov    %ebx,%eax
 804a8e2:	e8 e9 f9 ff ff       	call   804a2d0 <tigetstr@plt+0x1280>
 804a8e7:	85 f6                	test   %esi,%esi
 804a8e9:	0f 85 61 ff ff ff    	jne    804a850 <tigetstr@plt+0x1800>
 804a8ef:	8d 64 24 3c          	lea    0x3c(%esp),%esp
 804a8f3:	5b                   	pop    %ebx
 804a8f4:	5e                   	pop    %esi
 804a8f5:	5f                   	pop    %edi
 804a8f6:	5d                   	pop    %ebp
 804a8f7:	c3                   	ret  */  
 
 /*804a8f8:	8b 3d b8 d1 04 08    	mov    0x804d1b8,%edi					// g_0x804d1b8	""
 804a8fe:	85 ff                	test   %edi,%edi
 804a900:	0f 84 3b fc ff ff    	je     804a541 <tigetstr@plt+0x14f1>
 804a906:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a90a:	8b 70 18             	mov    0x18(%eax),%esi
 804a90d:	85 f6                	test   %esi,%esi
 804a90f:	0f 88 22 fc ff ff    	js     804a537 <tigetstr@plt+0x14e7>
 804a915:	8b 44 24 18          	mov    0x18(%esp),%eax
 804a919:	f6 40 2c 01          	testb  $0x1,0x2c(%eax)
 804a91d:	0f 84 2c fc ff ff    	je     804a54f <tigetstr@plt+0x14ff>
 804a923:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
 804a92a:	00 
 804a92b:	c7 04 24 91 b7 04 08 	movl   $0x804b791,(%esp)			// "me"
 804a932:	e8 39 e6 ff ff       	call   8048f70 <tgetstr@plt>
 804a937:	85 c0                	test   %eax,%eax
 804a939:	0f 84 10 fc ff ff    	je     804a54f <tigetstr@plt+0x14ff>
 804a93f:	c7 44 24 08 10 8f 04 	movl   $0x8048f10,0x8(%esp)		//  <putchar@plt>:	"\377%\224\320\004\bh\020\001"
 804a946:	08 
 804a947:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 804a94e:	00 
 804a94f:	89 04 24             	mov    %eax,(%esp)
 804a952:	e8 09 e4 ff ff       	call   8048d60 <tputs@plt>
 804a957:	e9 f3 fb ff ff       	jmp    804a54f <tigetstr@plt+0x14ff>
 804a95c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 804a960:	8b 18                	mov    (%eax),%ebx
 804a962:	e9 29 fa ff ff       	jmp    804a390 <tigetstr@plt+0x1340>
 804a967:	90                   	nop
 804a968:	b8 20 00 00 00       	mov    $0x20,%eax
 804a96d:	e8 0e f6 ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a972:	8b 45 14             	mov    0x14(%ebp),%eax
 804a975:	8b 7d 18             	mov    0x18(%ebp),%edi
 804a978:	8b 04 b0             	mov    (%eax,%esi,4),%eax
 804a97b:	0f b6 10             	movzbl (%eax),%edx
 804a97e:	84 d2                	test   %dl,%dl
 804a980:	0f 85 18 fc ff ff    	jne    804a59e <tigetstr@plt+0x154e>
 804a986:	31 db                	xor    %ebx,%ebx
 804a988:	e9 3d fc ff ff       	jmp    804a5ca <tigetstr@plt+0x157a>
 804a98d:	8d 76 00             	lea    0x0(%esi),%esi
 804a990:	8b 5c 24 20          	mov    0x20(%esp),%ebx
 804a994:	85 db                	test   %ebx,%ebx
 804a996:	74 17                	je     804a9af <tigetstr@plt+0x195f>
 804a998:	90                   	nop
 804a999:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804a9a0:	b8 5d 00 00 00       	mov    $0x5d,%eax
 804a9a5:	e8 d6 f5 ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804a9aa:	83 eb 01             	sub    $0x1,%ebx
 804a9ad:	75 f1                	jne    804a9a0 <tigetstr@plt+0x1950>
 804a9af:	e8 1c f8 ff ff       	call   804a1d0 <tigetstr@plt+0x1180>
 804a9b4:	a1 c4 d1 04 08       	mov    0x804d1c4,%eax
 804a9b9:	39 44 24 10          	cmp    %eax,0x10(%esp)
 804a9bd:	c7 44 24 20 ff ff ff 	movl   $0xffffffff,0x20(%esp)
 804a9c4:	ff 
 804a9c5:	0f 8d 7c fc ff ff    	jge    804a647 <tigetstr@plt+0x15f7>
 804a9cb:	a1 bc d1 04 08       	mov    0x804d1bc,%eax
 804a9d0:	8b 1d c0 d1 04 08    	mov    0x804d1c0,%ebx
 804a9d6:	e9 c1 fc ff ff       	jmp    804a69c <tigetstr@plt+0x164c>
 804a9db:	90                   	nop
 804a9dc:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 804a9e0:	39 ee                	cmp    %ebp,%esi
 804a9e2:	74 5c                	je     804aa40 <tigetstr@plt+0x19f0>
 804a9e4:	8b 44 24 10          	mov    0x10(%esp),%eax
 804a9e8:	8b 6d 04             	mov    0x4(%ebp),%ebp
 804a9eb:	83 44 24 14 01       	addl   $0x1,0x14(%esp)
 804a9f0:	89 28                	mov    %ebp,(%eax)
 804a9f2:	8b 1f                	mov    (%edi),%ebx
 804a9f4:	e9 87 fe ff ff       	jmp    804a880 <tigetstr@plt+0x1830>
 804a9f9:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804aa00:	8b 44 24 18          	mov    0x18(%esp),%eax
 804aa04:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
 804aa0b:	00 
 804aa0c:	b9 01 00 00 00       	mov    $0x1,%ecx
 804aa11:	8b 54 24 1c          	mov    0x1c(%esp),%edx
 804aa15:	89 f7                	mov    %esi,%edi
 804aa17:	8b 40 24             	mov    0x24(%eax),%eax
 804aa1a:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 804aa21:	89 44 24 08          	mov    %eax,0x8(%esp)
 804aa25:	31 c0                	xor    %eax,%eax
 804aa27:	85 f6                	test   %esi,%esi
 804aa29:	0f 94 c0             	sete   %al
 804aa2c:	89 44 24 04          	mov    %eax,0x4(%esp)
 804aa30:	89 d8                	mov    %ebx,%eax
 804aa32:	e8 99 f8 ff ff       	call   804a2d0 <tigetstr@plt+0x1280>
 804aa37:	e9 ab fe ff ff       	jmp    804a8e7 <tigetstr@plt+0x1897>
 804aa3c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 804aa40:	8b 76 04             	mov    0x4(%esi),%esi
 804aa43:	eb 9f                	jmp    804a9e4 <tigetstr@plt+0x1994>
 804aa45:	8d 14 00             	lea    (%eax,%eax,1),%edx
 804aa48:	8d 34 c5 00 00 00 00 	lea    0x0(,%eax,8),%esi
 804aa4f:	89 15 c4 d1 04 08    	mov    %edx,0x804d1c4
 804aa55:	e9 04 fc ff ff       	jmp    804a65e <tigetstr@plt+0x160e>
 804aa5a:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
 804aa61:	00 
 804aa62:	c7 04 24 8e b7 04 08 	movl   $0x804b78e,(%esp)		// "md"
 804aa69:	e8 02 e5 ff ff       	call   8048f70 <tgetstr@plt>
 804aa6e:	85 c0                	test   %eax,%eax
 804aa70:	0f 84 77 f9 ff ff    	je     804a3ed <tigetstr@plt+0x139d>
 804aa76:	c7 44 24 08 10 8f 04 	movl   $0x8048f10,0x8(%esp)		// d
 804aa7d:	08 
 804aa7e:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 804aa85:	00 
 804aa86:	89 04 24             	mov    %eax,(%esp)
 804aa89:	e8 d2 e2 ff ff       	call   8048d60 <tputs@plt>
 804aa8e:	e9 5a f9 ff ff       	jmp    804a3ed <tigetstr@plt+0x139d>
 804aa93:	8b 2d f4 d0 04 08    	mov    0x804d0f4,%ebp
 804aa99:	85 ed                	test   %ebp,%ebp
 804aa9b:	0f 84 4f fc ff ff    	je     804a6f0 <tigetstr@plt+0x16a0>
 804aaa1:	a1 fc d0 04 08       	mov    0x804d0fc,%eax
 804aaa6:	8b 58 14             	mov    0x14(%eax),%ebx
 804aaa9:	0f be 03             	movsbl (%ebx),%eax
 804aaac:	84 c0                	test   %al,%al
 804aaae:	74 0f                	je     804aabf <tigetstr@plt+0x1a6f>
 804aab0:	8d 5b 01             	lea    0x1(%ebx),%ebx
 804aab3:	e8 c8 f4 ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804aab8:	0f be 03             	movsbl (%ebx),%eax
 804aabb:	84 c0                	test   %al,%al
 804aabd:	75 f1                	jne    804aab0 <tigetstr@plt+0x1a60>
 804aabf:	b8 2b 00 00 00       	mov    $0x2b,%eax
 804aac4:	e8 b7 f4 ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804aac9:	8d 64 24 3c          	lea    0x3c(%esp),%esp
 804aacd:	5b                   	pop    %ebx
 804aace:	5e                   	pop    %esi
 804aacf:	5f                   	pop    %edi
 804aad0:	5d                   	pop    %ebp
 804aad1:	e9 fa f6 ff ff       	jmp    804a1d0 <tigetstr@plt+0x1180>
 804aad6:	b8 28 00 00 00       	mov    $0x28,%eax
 804aadb:	e8 a0 f4 ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804aae0:	e9 21 f9 ff ff       	jmp    804a406 <tigetstr@plt+0x13b6>
 804aae5:	8d 76 00             	lea    0x0(%esi),%esi
 804aae8:	39 fe                	cmp    %edi,%esi
 804aaea:	74 14                	je     804ab00 <tigetstr@plt+0x1ab0>
 804aaec:	8b 7f 04             	mov    0x4(%edi),%edi
 804aaef:	83 44 24 10 01       	addl   $0x1,0x10(%esp)
 804aaf4:	89 7d 00             	mov    %edi,0x0(%ebp)
 804aaf7:	e9 44 fc ff ff       	jmp    804a740 <tigetstr@plt+0x16f0>
 804aafc:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 804ab00:	8b 76 04             	mov    0x4(%esi),%esi
 804ab03:	eb e7                	jmp    804aaec <tigetstr@plt+0x1a9c>
 804ab05:	8b 6c 24 28          	mov    0x28(%esp),%ebp      // (esp+0x28)=char * var_0x28
 804ab09:	b8 2e 00 00 00       	mov    $0x2e,%eax
 804ab0e:	bb 74 b7 04 08       	mov    $0x804b774,%ebx		// "..."
 804ab13:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
 804ab19:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi
 804ab20:	8d 5b 01             	lea    0x1(%ebx),%ebx
 804ab23:	e8 58 f4 ff ff       	call   8049f80 <tigetstr@plt+0xf30>
 804ab28:	0f be 03             	movsbl (%ebx),%eax
 804ab2b:	84 c0                	test   %al,%al
 804ab2d:	75 f1                	jne    804ab20 <tigetstr@plt+0x1ad0>
 804ab2f:	e9 da fa ff ff       	jmp    804a60e <tigetstr@plt+0x15be>
 804ab34:	8b 68 10             	mov    0x10(%eax),%ebp
 804ab37:	e9 4d fc ff ff       	jmp    804a789 <tigetstr@plt+0x1739>
 804ab3c:	8b 44 24 18          	mov    0x18(%esp),%eax
 804ab40:	89 de                	mov    %ebx,%esi
 804ab42:	8b 40 24             	mov    0x24(%eax),%eax
 804ab45:	e8 f6 f4 ff ff       	call   804a040 <tigetstr@plt+0xff0>
 804ab4a:	e9 82 f9 ff ff       	jmp    804a4d1 <tigetstr@plt+0x1481>
 804ab4f:	c7 44 24 0c 94 bb 04 	movl   $0x804bb94,0xc(%esp)	// "dump_tree"
 804ab56:	08 
 804ab57:	c7 44 24 08 cd 01 00 	movl   $0x1cd,0x8(%esp)
 804ab5e:	00 
 804ab5f:	c7 44 24 04 78 b7 04 	movl   $0x804b778,0x4(%esp)	// "pstree.c"
 804ab66:	08 
 804ab67:	c7 04 24 81 b7 04 08 	movl   $0x804b781,(%esp)	// "closing >= 0"
 804ab6e:	e8 ad e4 ff ff       	call   8049020 <__assert_fail@plt>
 804ab73:	8b 54 24 1c          	mov    0x1c(%esp),%edx
 804ab77:	a1 fc d0 04 08       	mov    0x804d0fc,%eax
 804ab7c:	85 d2                	test   %edx,%edx
 804ab7e:	74 20                	je     804aba0 <tigetstr@plt+0x1b50>
 804ab80:	8b 58 0c             	mov    0xc(%eax),%ebx
 804ab83:	e9 08 f8 ff ff       	jmp    804a390 <tigetstr@plt+0x1340>
 804ab88:	c7 04 24 94 b7 04 08 	movl   $0x804b794,(%esp)	// "realloc"
 804ab8f:	e8 8c e2 ff ff       	call   8048e20 <perror@plt>
 804ab94:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 804ab9b:	e8 10 e3 ff ff       	call   8048eb0 <exit@plt>
 804aba0:	8b 58 04             	mov    0x4(%eax),%ebx
 804aba3:	e9 e8 f7 ff ff       	jmp    804a390 <tigetstr@plt+0x1340>
 804aba8:	90                   	nop
 804aba9:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi */

 void fun_804abb0()
 {
 /*804abb0:	57                   	push   %edi
 804abb1:	56                   	push   %esi
 804abb2:	53                   	push   %ebx
 804abb3:	89 c3                	mov    %eax,%ebx
 804abb5:	8d 64 24 f0          	lea    -0x10(%esp),%esp
 804abb9:	85 c0                	test   %eax,%eax
 804abbb:	74 23                	je     804abe0 <tigetstr@plt+0x1b90>
 804abbd:	8b 78 24             	mov    0x24(%eax),%edi
 804abc0:	89 d6                	mov    %edx,%esi
 804abc2:	39 d7                	cmp    %edx,%edi
 804abc4:	74 22                	je     804abe8 <tigetstr@plt+0x1b98>
 804abc6:	8b 58 30             	mov    0x30(%eax),%ebx
 804abc9:	85 db                	test   %ebx,%ebx
 804abcb:	74 13                	je     804abe0 <tigetstr@plt+0x1b90>
 804abcd:	8d 76 00             	lea    0x0(%esi),%esi
 804abd0:	8b 03                	mov    (%ebx),%eax
 804abd2:	89 f2                	mov    %esi,%edx
 804abd4:	e8 d7 ff ff ff       	call   804abb0 <tigetstr@plt+0x1b60>
 804abd9:	8b 5b 04             	mov    0x4(%ebx),%ebx
 804abdc:	85 db                	test   %ebx,%ebx
 804abde:	75 f0                	jne    804abd0 <tigetstr@plt+0x1b80>
 804abe0:	8d 64 24 10          	lea    0x10(%esp),%esp
 804abe4:	5b                   	pop    %ebx
 804abe5:	5e                   	pop    %esi
 804abe6:	5f                   	pop    %edi
 804abe7:	c3                   	ret   */
 }
 
 /*804abe8:	8b 35 94 d1 04 08    	mov    0x804d194,%esi
 804abee:	85 f6                	test   %esi,%esi
 804abf0:	75 3e                	jne    804ac30 <tigetstr@plt+0x1be0>
 804abf2:	89 7c 24 08          	mov    %edi,0x8(%esp)
 804abf6:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
 804abfd:	00 
 804abfe:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 804ac05:	00 
 804ac06:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 804ac0d:	89 d8                	mov    %ebx,%eax
 804ac0f:	b9 01 00 00 00       	mov    $0x1,%ecx
 804ac14:	31 d2                	xor    %edx,%edx
 804ac16:	e8 b5 f6 ff ff       	call   804a2d0 <tigetstr@plt+0x1280>
 804ac1b:	c7 05 94 d1 04 08 01 	movl   $0x1,0x804d194
 804ac22:	00 00 00 
 804ac25:	8d 64 24 10          	lea    0x10(%esp),%esp
 804ac29:	5b                   	pop    %ebx
 804ac2a:	5e                   	pop    %esi
 804ac2b:	5f                   	pop    %edi
 804ac2c:	c3                   	ret    
 804ac2d:	8d 76 00             	lea    0x0(%esi),%esi
 804ac30:	a1 80 d1 04 08       	mov    0x804d180,%eax
 804ac35:	c7 04 24 0a 00 00 00 	movl   $0xa,(%esp)
 804ac3c:	89 44 24 04          	mov    %eax,0x4(%esp)
 804ac40:	e8 ab e1 ff ff       	call   8048df0 <_IO_putc@plt>
 804ac45:	eb ab                	jmp    804abf2 <tigetstr@plt+0x1ba2>
 804ac47:	89 f6                	mov    %esi,%esi
 804ac49:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi */

 void fun_804ac50()
 {
 /*804ac50:	55                   	push   %ebp
 804ac51:	89 c5                	mov    %eax,%ebp
 804ac53:	57                   	push   %edi
 804ac54:	89 d7                	mov    %edx,%edi
 804ac56:	56                   	push   %esi
 804ac57:	89 ce                	mov    %ecx,%esi
 804ac59:	53                   	push   %ebx
 804ac5a:	8d 64 24 e4          	lea    -0x1c(%esp),%esp
 804ac5e:	c7 04 24 3c 00 00 00 	movl   $0x3c,(%esp)
 804ac65:	e8 26 e2 ff ff       	call   8048e90 <malloc@plt>
 804ac6a:	85 c0                	test   %eax,%eax
 804ac6c:	8d 18                	lea    (%eax),%ebx
 804ac6e:	74 5e                	je     804acce <tigetstr@plt+0x1c7e>
 804ac70:	89 6c 24 04          	mov    %ebp,0x4(%esp)
 804ac74:	c7 44 24 08 12 00 00 	movl   $0x12,0x8(%esp)
 804ac7b:	00 
 804ac7c:	89 04 24             	mov    %eax,(%esp)
 804ac7f:	e8 9c e2 ff ff       	call   8048f20 <strncpy@plt>
 804ac84:	8b 44 24 30          	mov    0x30(%esp),%eax
 804ac88:	89 7b 1c             	mov    %edi,0x1c(%ebx)
 804ac8b:	89 43 28             	mov    %eax,0x28(%ebx)
 804ac8e:	a1 c8 d1 04 08       	mov    0x804d1c8,%eax
 804ac93:	89 73 24             	mov    %esi,0x24(%ebx)
 804ac96:	89 43 38             	mov    %eax,0x38(%ebx)
 804ac99:	c6 43 11 00          	movb   $0x0,0x11(%ebx)
 804ac9d:	c6 43 2c 00          	movb   $0x0,0x2c(%ebx)
 804aca1:	c7 43 18 00 00 00 00 	movl   $0x0,0x18(%ebx)
 804aca8:	c7 43 14 00 00 00 00 	movl   $0x0,0x14(%ebx)
 804acaf:	c7 43 30 00 00 00 00 	movl   $0x0,0x30(%ebx)
 804acb6:	c7 43 34 00 00 00 00 	movl   $0x0,0x34(%ebx)
 804acbd:	89 1d c8 d1 04 08    	mov    %ebx,0x804d1c8
 804acc3:	8d 64 24 1c          	lea    0x1c(%esp),%esp
 804acc7:	89 d8                	mov    %ebx,%eax
 804acc9:	5b                   	pop    %ebx
 804acca:	5e                   	pop    %esi
 804accb:	5f                   	pop    %edi
 804accc:	5d                   	pop    %ebp
 804accd:	c3                   	ret */
 }

 /*804acce:	c7 04 24 9c b7 04 08 	movl   $0x804b79c,(%esp)	// "malloc"
 804acd5:	e8 46 e1 ff ff       	call   8048e20 <perror@plt> // perror("malloc")
 804acda:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 804ace1:	e8 ca e1 ff ff       	call   8048eb0 <exit@plt>   // exit(1)
 804ace6:	8d 76 00             	lea    0x0(%esi),%esi
 804ace9:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi*/

 void fun_804acf0()
 {
 /*804acf0:	55                   	push   %ebp
 804acf1:	57                   	push   %edi
 804acf2:	56                   	push   %esi
 804acf3:	89 d6                	mov    %edx,%esi
 804acf5:	53                   	push   %ebx
 804acf6:	89 c3                	mov    %eax,%ebx
 804acf8:	8d 64 24 e4          	lea    -0x1c(%esp),%esp
 804acfc:	c7 04 24 08 00 00 00 	movl   $0x8,(%esp)
 804ad03:	e8 88 e1 ff ff       	call   8048e90 <malloc@plt>
 804ad08:	85 c0                	test   %eax,%eax
 804ad0a:	89 44 24 0c          	mov    %eax,0xc(%esp)
 804ad0e:	74 73                	je     804ad83 <tigetstr@plt+0x1d33>
 804ad10:	8b 44 24 0c          	mov    0xc(%esp),%eax
 804ad14:	8d 6b 30             	lea    0x30(%ebx),%ebp
 804ad17:	89 30                	mov    %esi,(%eax)
 804ad19:	8b 5b 30             	mov    0x30(%ebx),%ebx
 804ad1c:	85 db                	test   %ebx,%ebx
 804ad1e:	74 50                	je     804ad70 <tigetstr@plt+0x1d20>
 804ad20:	8b 0d a4 d1 04 08    	mov    0x804d1a4,%ecx
 804ad26:	eb 14                	jmp    804ad3c <tigetstr@plt+0x1cec>
 804ad28:	8b 03                	mov    (%ebx),%eax
 804ad2a:	8b 56 1c             	mov    0x1c(%esi),%edx
 804ad2d:	39 50 1c             	cmp    %edx,0x1c(%eax)
 804ad30:	7f 3e                	jg     804ad70 <tigetstr@plt+0x1d20>
 804ad32:	8d 6b 04             	lea    0x4(%ebx),%ebp
 804ad35:	8b 5b 04             	mov    0x4(%ebx),%ebx
 804ad38:	85 db                	test   %ebx,%ebx
 804ad3a:	74 34                	je     804ad70 <tigetstr@plt+0x1d20>
 804ad3c:	85 c9                	test   %ecx,%ecx
 804ad3e:	75 e8                	jne    804ad28 <tigetstr@plt+0x1cd8>
 804ad40:	8b 3b                	mov    (%ebx),%edi
 804ad42:	89 74 24 04          	mov    %esi,0x4(%esp)
 804ad46:	89 3c 24             	mov    %edi,(%esp)
 804ad49:	89 4c 24 08          	mov    %ecx,0x8(%esp)
 804ad4d:	e8 be df ff ff       	call   8048d10 <strcmp@plt>
 804ad52:	83 f8 00             	cmp    $0x0,%eax
 804ad55:	7f 19                	jg     804ad70 <tigetstr@plt+0x1d20>
 804ad57:	8b 4c 24 08          	mov    0x8(%esp),%ecx
 804ad5b:	75 d5                	jne    804ad32 <tigetstr@plt+0x1ce2>
 804ad5d:	8b 46 24             	mov    0x24(%esi),%eax
 804ad60:	39 47 24             	cmp    %eax,0x24(%edi)
 804ad63:	76 cd                	jbe    804ad32 <tigetstr@plt+0x1ce2>
 804ad65:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 804ad69:	8d bc 27 00 00 00 00 	lea    0x0(%edi,%eiz,1),%edi
 804ad70:	8b 44 24 0c          	mov    0xc(%esp),%eax
 804ad74:	89 58 04             	mov    %ebx,0x4(%eax)
 804ad77:	89 45 00             	mov    %eax,0x0(%ebp)
 804ad7a:	8d 64 24 1c          	lea    0x1c(%esp),%esp
 804ad7e:	5b                   	pop    %ebx
 804ad7f:	5e                   	pop    %esi
 804ad80:	5f                   	pop    %edi
 804ad81:	5d                   	pop    %ebp
 804ad82:	c3                   	ret  */
 }
 
 /*804ad83:	c7 04 24 9c b7 04 08 	movl   $0x804b79c,(%esp)	// "malloc"
 804ad8a:	e8 91 e0 ff ff       	call   8048e20 <perror@plt> // perror("malloc")
 804ad8f:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 804ad96:	e8 15 e1 ff ff       	call   8048eb0 <exit@plt>
 804ad9b:	90                   	nop
 804ad9c:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi*/

viod fun_804ada0()
{
 /*804ada0:	55                   	push   %ebp
 804ada1:	57                   	push   %edi
 804ada2:	89 cf                	mov    %ecx,%edi
 804ada4:	56                   	push   %esi
 804ada5:	53                   	push   %ebx
 804ada6:	8d 64 24 d4          	lea    -0x2c(%esp),%esp*/

    char *esp_s_0x2c;

 /*804adaa:	8b 1d c8 d1 04 08    	mov    0x804d1c8,%ebx       // ebx = g_0x804d1c8
 804adb0:	8b 4c 24 50          	mov    0x50(%esp),%ecx      // ecx=(esp+0x50)
 804adb4:	85 db                	test   %ebx,%ebx            // ebx ?= 0
 804adb6:	89 54 24 10          	mov    %edx,0x10(%esp)      // (esp+0x10)=edx
 804adba:	89 4c 24 14          	mov    %ecx,0x14(%esp)      // (esp+0x14)=ecx
 804adbe:	74 22                	je     804ade2 <tigetstr@plt+0x1d92>
 804adc0:	89 d1                	mov    %edx,%ecx
 804adc2:	3b 4b 1c             	cmp    0x1c(%ebx),%ecx
 804adc5:	8b 54 24 10          	mov    0x10(%esp),%edx
 804adc9:	75 0e                	jne    804add9 <tigetstr@plt+0x1d89>
 804adcb:	e9 08 01 00 00       	jmp    804aed8 <tigetstr@plt+0x1e88>
 804add0:	3b 53 1c             	cmp    0x1c(%ebx),%edx
 804add3:	0f 84 ff 00 00 00    	je     804aed8 <tigetstr@plt+0x1e88>
 804add9:	8b 5b 38             	mov    0x38(%ebx),%ebx
 804addc:	85 db                	test   %ebx,%ebx
 804adde:	66 90                	xchg   %ax,%ax
 804ade0:	75 ee                	jne    804add0 <tigetstr@plt+0x1d80>
 804ade2:	8b 4c 24 54          	mov    0x54(%esp),%ecx      // ecx=(esp+0x54)
 804ade6:	8b 54 24 10          	mov    0x10(%esp),%edx      // edx=(esp+0x10)
 804adea:	89 0c 24             	mov    %ecx,(%esp)          // (esp)=ecx=(esp+0x54)
 804aded:	8b 4c 24 44          	mov    0x44(%esp),%ecx					// ecx=var_44
 804adf1:	e8 5a fe ff ff       	call   804ac50 <tigetstr@plt+0x1c00>    // fun_804ac50
 804adf6:	89 c3                	mov    %eax,%ebx
 804adf8:	8b 6c 24 48          	mov    0x48(%esp),%ebp					// ebp=fp_1
 804adfc:	85 ed                	test   %ebp,%ebp
 804adfe:	74 4b                	je     804ae4b <tigetstr@plt+0x1dfb>
 804ae00:	8b 74 24 4c          	mov    0x4c(%esp),%esi
 804ae04:	85 f6                	test   %esi,%esi
 804ae06:	0f 84 bc 00 00 00    	je     804aec8 <tigetstr@plt+0x1e78>
 804ae0c:	8b 44 24 4c          	mov    0x4c(%esp),%eax
 804ae10:	c7 43 18 00 00 00 00 	movl   $0x0,0x18(%ebx)
 804ae17:	89 c1                	mov    %eax,%ecx    // ecx=eax
 804ae19:	83 e9 01             	sub    $0x1,%ecx    // ecx=ecx-1
 804ae1c:	85 c9                	test   %ecx,%ecx    // ecx ?= 0
 804ae1e:	7e 2b                	jle    804ae4b <tigetstr@plt+0x1dfb>
 804ae20:	31 d2                	xor    %edx,%edx    // edx=0
 804ae22:	31 c0                	xor    %eax,%eax    // eax=0
 804ae24:	8b 74 24 48          	mov    0x48(%esp),%esi					// esi=fp_1
 804ae28:	90                   	nop
 804ae29:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804ae30:	80 3c 06 00          	cmpb   $0x0,(%esi,%eax,1)
 804ae34:	75 06                	jne    804ae3c <tigetstr@plt+0x1dec>
 804ae36:	83 c2 01             	add    $0x1,%edx
 804ae39:	89 53 18             	mov    %edx,0x18(%ebx)
 804ae3c:	8d 40 01             	lea    0x1(%eax),%eax
 804ae3f:	39 c8                	cmp    %ecx,%eax
 804ae41:	75 ed                	jne    804ae30 <tigetstr@plt+0x1de0>
 804ae43:	85 d2                	test   %edx,%edx
 804ae45:	0f 85 2d 01 00 00    	jne    804af78 <tigetstr@plt+0x1f28>
 804ae4b:	39 7c 24 10          	cmp    %edi,0x10(%esp)
 804ae4f:	b8 00 00 00 00       	mov    $0x0,%eax
 804ae54:	0f 44 f8             	cmove  %eax,%edi
 804ae57:	8b 44 24 40          	mov    0x40(%esp),%eax
 804ae5b:	80 7c 24 14 00       	cmpb   $0x0,0x14(%esp)
 804ae60:	89 43 20             	mov    %eax,0x20(%ebx)
 804ae63:	74 04                	je     804ae69 <tigetstr@plt+0x1e19>
 804ae65:	80 4b 2c 02          	orb    $0x2,0x2c(%ebx)
 804ae69:	8b 35 c8 d1 04 08    	mov    0x804d1c8,%esi
 804ae6f:	85 f6                	test   %esi,%esi
 804ae71:	75 0c                	jne    804ae7f <tigetstr@plt+0x1e2f>
 804ae73:	eb 33                	jmp    804aea8 <tigetstr@plt+0x1e58>
 804ae75:	8d 76 00             	lea    0x0(%esi),%esi
 804ae78:	8b 76 38             	mov    0x38(%esi),%esi
 804ae7b:	85 f6                	test   %esi,%esi
 804ae7d:	74 29                	je     804aea8 <tigetstr@plt+0x1e58>
 804ae7f:	3b 7e 1c             	cmp    0x1c(%esi),%edi
 804ae82:	75 f4                	jne    804ae78 <tigetstr@plt+0x1e28>
 804ae84:	8b 44 24 10          	mov    0x10(%esp),%eax
 804ae88:	85 c0                	test   %eax,%eax
 804ae8a:	74 0c                	je     804ae98 <tigetstr@plt+0x1e48>
 804ae8c:	89 da                	mov    %ebx,%edx
 804ae8e:	89 f0                	mov    %esi,%eax
 804ae90:	e8 5b fe ff ff       	call   804acf0 <tigetstr@plt+0x1ca0>    // fun_804acf0
 804ae95:	89 73 34             	mov    %esi,0x34(%ebx)
 804ae98:	8d 64 24 2c          	lea    0x2c(%esp),%esp
 804ae9c:	5b                   	pop    %ebx
 804ae9d:	5e                   	pop    %esi
 804ae9e:	5f                   	pop    %edi
 804ae9f:	5d                   	pop    %ebp
 804aea0:	c3                   	ret    */
}

void fun_804aea1()
{
 /*804aea1:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804aea8:	8b 44 24 54          	mov    0x54(%esp),%eax          // eax=(esp+0x54)
 804aeac:	31 c9                	xor    %ecx,%ecx                // ecx=0
 804aeae:	89 04 24             	mov    %eax,(%esp)              // (esp)=eax
 804aeb1:	89 fa                	mov    %edi,%edx                // edx=edi
 804aeb3:	b8 a3 b7 04 08       	mov    $0x804b7a3,%eax	// "?"
 804aeb8:	e8 93 fd ff ff       	call   804ac50 <tigetstr@plt+0x1c00>    // fun_804ac50
 804aebd:	89 c6                	mov    %eax,%esi
 804aebf:	eb c3                	jmp    804ae84 <tigetstr@plt+0x1e34>
 804aec1:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804aec8:	c7 43 18 ff ff ff ff 	movl   $0xffffffff,0x18(%ebx)           // (ebx+0x18)=-1
 804aecf:	e9 77 ff ff ff       	jmp    804ae4b <tigetstr@plt+0x1dfb>
 804aed4:	8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
 804aed8:	c7 44 24 08 12 00 00 	movl   $0x12,0x8(%esp)      // (esp+0x8)=0x12
 804aedf:	00 
 804aee0:	89 44 24 04          	mov    %eax,0x4(%esp)       // (esp+0x4)=
 804aee4:	89 1c 24             	mov    %ebx,(%esp)
 804aee7:	e8 34 e0 ff ff       	call   8048f20 <strncpy@plt>
 804aeec:	8b 2d a4 d1 04 08    	mov    0x804d1a4,%ebp
 804aef2:	8b 44 24 44          	mov    0x44(%esp),%eax					// eax=var_44
 804aef6:	85 ed                	test   %ebp,%ebp
 804aef8:	c6 43 11 00          	movb   $0x0,0x11(%ebx)
 804aefc:	89 43 24             	mov    %eax,0x24(%ebx)
 804aeff:	0f 85 f3 fe ff ff    	jne    804adf8 <tigetstr@plt+0x1da8>
 804af05:	8b 43 34             	mov    0x34(%ebx),%eax
 804af08:	85 c0                	test   %eax,%eax
 804af0a:	0f 84 e8 fe ff ff    	je     804adf8 <tigetstr@plt+0x1da8>
 804af10:	89 c5                	mov    %eax,%ebp
 804af12:	8b 70 30             	mov    0x30(%eax),%esi
 804af15:	83 c5 30             	add    $0x30,%ebp
 804af18:	85 f6                	test   %esi,%esi
 804af1a:	0f 84 d8 fe ff ff    	je     804adf8 <tigetstr@plt+0x1da8>
 804af20:	89 5c 24 18          	mov    %ebx,0x18(%esp)
 804af24:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
 804af28:	90                   	nop
 804af29:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804af30:	8b 46 04             	mov    0x4(%esi),%eax
 804af33:	85 c0                	test   %eax,%eax
 804af35:	74 1e                	je     804af55 <tigetstr@plt+0x1f05>
 804af37:	8b 38                	mov    (%eax),%edi
 804af39:	8b 1e                	mov    (%esi),%ebx
 804af3b:	89 1c 24             	mov    %ebx,(%esp)
 804af3e:	89 7c 24 04          	mov    %edi,0x4(%esp)
 804af42:	e8 c9 dd ff ff       	call   8048d10 <strcmp@plt>
 804af47:	85 c0                	test   %eax,%eax
 804af49:	7e 0a                	jle    804af55 <tigetstr@plt+0x1f05>
 804af4b:	89 3e                	mov    %edi,(%esi)
 804af4d:	8b 45 00             	mov    0x0(%ebp),%eax
 804af50:	8b 40 04             	mov    0x4(%eax),%eax
 804af53:	89 18                	mov    %ebx,(%eax)
 804af55:	8b 45 00             	mov    0x0(%ebp),%eax
 804af58:	89 c5                	mov    %eax,%ebp
 804af5a:	83 c5 04             	add    $0x4,%ebp
 804af5d:	8b 70 04             	mov    0x4(%eax),%esi
 804af60:	85 f6                	test   %esi,%esi
 804af62:	75 cc                	jne    804af30 <tigetstr@plt+0x1ee0>
 804af64:	8b 5c 24 18          	mov    0x18(%esp),%ebx
 804af68:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
 804af6c:	e9 87 fe ff ff       	jmp    804adf8 <tigetstr@plt+0x1da8>
 804af71:	8d b4 26 00 00 00 00 	lea    0x0(%esi,%eiz,1),%esi
 804af78:	c1 e2 02             	shl    $0x2,%edx
 804af7b:	89 14 24             	mov    %edx,(%esp)
 804af7e:	e8 0d df ff ff       	call   8048e90 <malloc@plt>
 804af83:	85 c0                	test   %eax,%eax
 804af85:	89 43 14             	mov    %eax,0x14(%ebx)
 804af88:	0f 84 8b 00 00 00    	je     804b019 <tigetstr@plt+0x1fc9>
 804af8e:	8b 44 24 48          	mov    0x48(%esp),%eax					// eax=fp_1
 804af92:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
 804af99:	00 
 804af9a:	89 04 24             	mov    %eax,(%esp)
 804af9d:	e8 8e df ff ff       	call   8048f30 <__rawmemchr@plt>
 804afa2:	89 c6                	mov    %eax,%esi
 804afa4:	8b 54 24 48          	mov    0x48(%esp),%edx					// edx=fp_1
 804afa8:	83 c6 01             	add    $0x1,%esi
 804afab:	8b 6b 14             	mov    0x14(%ebx),%ebp
 804afae:	29 f2                	sub    %esi,%edx
 804afb0:	03 54 24 4c          	add    0x4c(%esp),%edx
 804afb4:	89 14 24             	mov    %edx,(%esp)
 804afb7:	89 54 24 18          	mov    %edx,0x18(%esp)
 804afbb:	e8 d0 de ff ff       	call   8048e90 <malloc@plt>
 804afc0:	85 c0                	test   %eax,%eax
 804afc2:	89 45 00             	mov    %eax,0x0(%ebp)
 804afc5:	74 52                	je     804b019 <tigetstr@plt+0x1fc9>
 804afc7:	8b 43 14             	mov    0x14(%ebx),%eax
 804afca:	8b 54 24 18          	mov    0x18(%esp),%edx
 804afce:	8b 00                	mov    (%eax),%eax
 804afd0:	89 54 24 08          	mov    %edx,0x8(%esp)
 804afd4:	89 74 24 04          	mov    %esi,0x4(%esp)
 804afd8:	89 04 24             	mov    %eax,(%esp)
 804afdb:	e8 a0 dd ff ff       	call   8048d80 <memcpy@plt>
 804afe0:	83 7b 18 01          	cmpl   $0x1,0x18(%ebx)
 804afe4:	0f 8e 61 fe ff ff    	jle    804ae4b <tigetstr@plt+0x1dfb>
 804afea:	be 01 00 00 00       	mov    $0x1,%esi
 804afef:	90                   	nop
 804aff0:	8b 53 14             	mov    0x14(%ebx),%edx
 804aff3:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
 804affa:	00 
 804affb:	89 04 24             	mov    %eax,(%esp)
 804affe:	8d 2c b2             	lea    (%edx,%esi,4),%ebp
 804b001:	83 c6 01             	add    $0x1,%esi
 804b004:	e8 27 df ff ff       	call   8048f30 <__rawmemchr@plt>
 804b009:	83 c0 01             	add    $0x1,%eax
 804b00c:	3b 73 18             	cmp    0x18(%ebx),%esi
 804b00f:	89 45 00             	mov    %eax,0x0(%ebp)
 804b012:	7c dc                	jl     804aff0 <tigetstr@plt+0x1fa0>
 804b014:	e9 32 fe ff ff       	jmp    804ae4b <tigetstr@plt+0x1dfb>
 804b019:	c7 04 24 9c b7 04 08 	movl   $0x804b79c,(%esp)	// "malloc"
 804b020:	e8 fb dd ff ff       	call   8048e20 <perror@plt> // perror("malloc");
 804b025:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
 804b02c:	e8 7f de ff ff       	call   8048eb0 <exit@plt>   // exit(1)
 804b031:	eb 0d                	jmp    804b040 <tigetstr@plt+0x1ff0>    // fun_804b040
 804b033:	90                   	nop
 804b034:	90                   	nop
 804b035:	90                   	nop
 804b036:	90                   	nop
 804b037:	90                   	nop
 804b038:	90                   	nop
 804b039:	90                   	nop
 804b03a:	90                   	nop
 804b03b:	90                   	nop
 804b03c:	90                   	nop
 804b03d:	90                   	nop
 804b03e:	90                   	nop
 804b03f:	90                   	nop*/
 }

void fun_804b040()
{
 /*804b040:	8d 64 24 e4          	lea    -0x1c(%esp),%esp
 804b044:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)       // (esp+0x8)=0x5
 804b04b:	00 
 804b04c:	c7 44 24 04 a5 b7 04 	movl   $0x804b7a5,0x4(%esp)	// (esp+0x4)="pstree (PSmisc) %s\n"
 804b053:	08 
 804b054:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)          // (esp)=0
 804b05b:	e8 50 dd ff ff       	call   8048db0 <dcgettext@plt>
 804b060:	89 44 24 08          	mov    %eax,0x8(%esp)
 804b064:	a1 64 d1 04 08       	mov    0x804d164,%eax
 804b069:	c7 44 24 0c b9 b7 04 	movl   $0x804b7b9,0xc(%esp)	// "22.20"
 804b070:	08 
 804b071:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 804b078:	00 
 804b079:	89 04 24             	mov    %eax,(%esp)
 804b07c:	e8 0f df ff ff       	call   8048f90 <__fprintf_chk@plt>*/

    fprintf(stderr, "pstree (PSmisc) %s\n", "22.20");

 /*804b081:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 804b088:	00 
 804b089:	c7 44 24 04 e4 b5 04 	movl   $0x804b5e4,0x4(%esp)	// "Copyright (C) 1993-2009 Werner Almesberger and Craig Small\n\n"

 804b090:	08 
 804b091:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 804b098:	e8 13 dd ff ff       	call   8048db0 <dcgettext@plt>
 804b09d:	89 44 24 08          	mov    %eax,0x8(%esp)
 804b0a1:	a1 64 d1 04 08       	mov    0x804d164,%eax
 804b0a6:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 804b0ad:	00 
 804b0ae:	89 04 24             	mov    %eax,(%esp)
 804b0b1:	e8 da de ff ff       	call   8048f90 <__fprintf_chk@plt>*/

    fprintf(stderr, "Copyright (C) 1993-2009 Werner Almesberger and Craig Small\n\n", "22.20");

 /*804b0b6:	c7 44 24 08 05 00 00 	movl   $0x5,0x8(%esp)
 804b0bd:	00 
 804b0be:	c7 44 24 04 24 b6 04 	movl   $0x804b624,0x4(%esp)	// "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
 804b0c5:	08 
 804b0c6:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
 804b0cd:	e8 de dc ff ff       	call   8048db0 <dcgettext@plt>
 804b0d2:	89 44 24 08          	mov    %eax,0x8(%esp)
 804b0d6:	a1 64 d1 04 08       	mov    0x804d164,%eax
 804b0db:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
 804b0e2:	00 
 804b0e3:	89 04 24             	mov    %eax,(%esp)
 804b0e6:	e8 a5 de ff ff       	call   8048f90 <__fprintf_chk@plt>
 804b0eb:	8d 64 24 1c          	lea    0x1c(%esp),%esp
 804b0ef:	c3                   	ret    */
    
    fprintf(stderr,
            "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
              "This is free software, and you are welcome to redistribute it under\n"
              "the terms of the GNU General Public License.\n"
              "For more information about these matters, see the files named COPYING.\n");
}

 /*804b0f0:	55                   	push   %ebp
 804b0f1:	57                   	push   %edi
 804b0f2:	31 ff                	xor    %edi,%edi
 804b0f4:	56                   	push   %esi
 804b0f5:	53                   	push   %ebx
 804b0f6:	e8 f5 ec ff ff       	call   8049df0 <tigetstr@plt+0xda0>
 804b0fb:	81 c3 05 1f 00 00    	add    $0x1f05,%ebx
 804b101:	83 ec 1c             	sub    $0x1c,%esp
 804b104:	8b 6c 24 30          	mov    0x30(%esp),%ebp
 804b108:	8d b3 fc fe ff ff    	lea    -0x104(%ebx),%esi
 804b10e:	e8 a1 db ff ff       	call   8048cb4 <_init>
 804b113:	8d 83 f8 fe ff ff    	lea    -0x108(%ebx),%eax
 804b119:	29 c6                	sub    %eax,%esi
 804b11b:	c1 fe 02             	sar    $0x2,%esi
 804b11e:	85 f6                	test   %esi,%esi
 804b120:	74 27                	je     804b149 <tigetstr@plt+0x20f9>
 804b122:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
 804b128:	8b 44 24 38          	mov    0x38(%esp),%eax
 804b12c:	89 2c 24             	mov    %ebp,(%esp)
 804b12f:	89 44 24 08          	mov    %eax,0x8(%esp)
 804b133:	8b 44 24 34          	mov    0x34(%esp),%eax
 804b137:	89 44 24 04          	mov    %eax,0x4(%esp)
 804b13b:	ff 94 bb f8 fe ff ff 	call   *-0x108(%ebx,%edi,4)
 804b142:	83 c7 01             	add    $0x1,%edi
 804b145:	39 f7                	cmp    %esi,%edi
 804b147:	75 df                	jne    804b128 <tigetstr@plt+0x20d8>
 804b149:	83 c4 1c             	add    $0x1c,%esp
 804b14c:	5b                   	pop    %ebx
 804b14d:	5e                   	pop    %esi
 804b14e:	5f                   	pop    %edi
 804b14f:	5d                   	pop    %ebp
 804b150:	c3                   	ret    
 804b151:	eb 0d                	jmp    804b160 <tigetstr@plt+0x2110>
 804b153:	90                   	nop
 804b154:	90                   	nop
 804b155:	90                   	nop
 804b156:	90                   	nop
 804b157:	90                   	nop
 804b158:	90                   	nop
 804b159:	90                   	nop
 804b15a:	90                   	nop
 804b15b:	90                   	nop
 804b15c:	90                   	nop
 804b15d:	90                   	nop
 804b15e:	90                   	nop
 804b15f:	90                   	nop
 804b160:	f3 c3                	repz ret 
 804b162:	66 90                	xchg   %ax,%ax */

#if 0
难得有情人
初恋情人
最爱
不装饰你的梦
让一切随风
你的浅笑
痴心换情深
春风秋雨
情人知己
友谊太阳
#endif
